/*****************************************************

Function: add/remove elements from the document

******************************************************/



function removeElement(parentID,elementID){

	var parent = document.getElementById(parentID);

	var child = document.getElementById(elementID);

	

	parent.removeChild(child);

}

function addElement(parentID,elementID,elementType,secondType){

	var newElement = document.createElement(elementType);

	newElement.setAttribute('id',elementID);

	var parent = document.getElementById(parentID);

	

	if(secondType){

		newElement.type = secondType;	

	}

	parent.appendChild(newElement);

}



function setElementAttribute(id,stype,text){

	var element = document.getElementById(id);

	

	element.setAttribute(stype,text);

}

/*****************************************************

Function: confirm delete

******************************************************/

function confirmDelete(delUrl) {

  if (confirm("Are you sure you want to delete?")) {

    document.location = delUrl;

  }

}



/*****************************************************

Function: redirect to page

*****************************************************/

function redirect(page){

	if(page) document.location.href = page;	

}

/*****************************************************

Function: check value agains regular expression

******************************************************/

function checkRegExpress(reg,id,format){

	var element = document.getElementById(id);

	

	if(!element.value.match(reg)){

		showError(format);

		return false;

	}else{

		return true;	

	}

}





/*****************************************************

Function: show/hide div

******************************************************/

function showHideElement(element,bstate){ //state: true = show ; false = hide

	var div = document.getElementById(element);

	

	if(bstate){

		div.style.display = 'block';

	}else{

		div.style.display = 'none';

	}

}



function showHideElementAuto(element){ //state: true = show ; false = hide

	var div = document.getElementById(element);

	

	if(div.style.display == 'none'){

		div.style.display = 'block';

	}else{

		div.style.display = 'none';

	}

}



function toggleLayer( whichLayer ){

  var elem, vis;

  if( document.getElementById ) // this is the way the standards work

    elem = document.getElementById( whichLayer );

  else if( document.all ) // this is the way old msie versions work

    elem = document.all[whichLayer];

  else if( document.layers ) // this is the way nn4 works

    elem = document.layers[whichLayer];

  vis = elem.style;

  // if the style.display value is blank we try to figure it out here

  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)

    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';

  vis.display = (vis.display==''||vis.display=='block')?'none':'block';

}



function toggleLabel( whichButton ){

  var elem, label;

  elem = document.getElementById( whichButton );

  label = elem.value;

  if(whichButton == 'more'){

    if(label == 'List More'){

        elem.value = 'List Less';

    }else{

        elem.value = 'List More';

    }

  }

}





/*****************************************************

Function: page information

******************************************************/

if(document.all) { 

	document.onmousemove = UpdateCursorPositionDocAll; 

}else {

	document.onmousemove = UpdateCursorPosition; 

}



var cX = 0; var cY = 0;



function UpdateCursorPosition(e){

	cX = e.pageX; 

	cY = e.pageY;

}

function UpdateCursorPositionDocAll(e){

	cX = event.clientX; 

	cY = event.clientY;

}





function getPageSize(){

	

	var xScroll, yScroll;

	

	if (window.innerHeight && window.scrollMaxY) {	

		xScroll = window.innerWidth + window.scrollMaxX;

		yScroll = window.innerHeight + window.scrollMaxY;

	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac

		xScroll = document.body.scrollWidth;

		yScroll = document.body.scrollHeight;

	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari

		xScroll = document.body.offsetWidth;

		yScroll = document.body.offsetHeight;

	}

	

	var windowWidth, windowHeight;

	



	if (self.innerHeight) {	// all except Explorer

		if(document.documentElement.clientWidth){

			windowWidth = document.documentElement.clientWidth; 

		} else {

			windowWidth = self.innerWidth;

		}

		windowHeight = self.innerHeight;

	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode

		windowWidth = document.documentElement.clientWidth;

		windowHeight = document.documentElement.clientHeight;

	} else if (document.body) { // other Explorers

		windowWidth = document.body.clientWidth;

		windowHeight = document.body.clientHeight;

	}	

	

	// for small pages with total height less then height of the viewport

	if(yScroll < windowHeight){

		pageHeight = windowHeight;

	} else { 

		pageHeight = yScroll;

	}



	// for small pages with total width less then width of the viewport

	if(xScroll < windowWidth){	

		pageWidth = xScroll;		

	} else {

		pageWidth = windowWidth;

	}



	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 

	return arrayPageSize;

}

function getPageScroll(){



	var xScroll, yScroll;



	if (self.pageYOffset) {

		yScroll = self.pageYOffset;

		xScroll = self.pageXOffset;

	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict

		yScroll = document.documentElement.scrollTop;

		xScroll = document.documentElement.scrollLeft;

	} else if (document.body) {// all other Explorers

		yScroll = document.body.scrollTop;

		xScroll = document.body.scrollLeft;	

	}



	arrayPageScroll = new Array(xScroll,yScroll) 

	return arrayPageScroll;

}



/*****************************************************

Function: check to see if an element is in an array

******************************************************/

function inArray(arr,value){

	var found = false;

	

	for(x in arr){

		if(arr[x] == value){

			found = true;

			break;

		}

	}

	

	return found;

}



/*****************************************************

Function: Macromedia functions

******************************************************/

function MM_swapImgRestore() { //v3.0

  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;

}

function MM_preloadImages() { //v3.0

  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}

function MM_findObj(n, d) { //v4.01

  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

  if(!x && d.getElementById) x=d.getElementById(n); return x;

}

function MM_swapImage() { //v3.0

  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}

}

function MM_goToURL() { //v3.0

  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;

  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");

}

/*****************************************************

Function: get vars from URL

******************************************************/

function getURLHash() {

	var q = document.location.hash;

	if(q) {

		alert(q.substring(1,q.length));

	}

	return "";

}

function SubmitTemplate(templateId) {

    var submit=false, error='';

    switch(templateId) {

        case 1:

        case 4:

        case 9:

            submit=CheckRadioInputs();

            if(!submit) {

                switch(templateId) {

                    case 1:

                    case 9:

                        error='An option must be selected for each question.';

                        break;

                    case 4:

                        error='An option must be selected for this question.';

                        break;

                }

            }

            break;

        case 2:

            submit=true;

            break;

        case 3:

        case 7:

            var list=document.getElementsByTagName("input"),length=list.length;

            for(var i=0;i<length;i++) {

                var obj=list[i];

                if(obj.type=='checkbox'&&obj.checked) {

                    submit=true;

                    break;

                }

            }

            if(!submit) {

                error='At least one option must be selected.';

            }

            break;

        case 8:

            var list=document.getElementsByTagName("input"),length=list.length;

            var checkedCount=0,groupMinOptions=MM_findObj('groupMinOptions');

            for(var i=0;i<length;i++) {

                var obj=list[i];

                if(obj.type=='checkbox'&&obj.checked) {

                    checkedCount++;

                    submit=true;

                }

            }

            if(!submit) {

                if(confirm('You have not selected any options.  Do you want to continue?')) {

                    submit = true;

                }

            } else if(checkedCount<groupMinOptions.value) {

                if(!confirm('You have only selected '+checkedCount+' qualities. Are you sure you want to proceed?')) {

                    submit = false;

                }

            }

            break;

    }

    if(error.length>0) {

        alert(error);

    } else if(submit) {

        var form=MM_findObj('template');

        form.submit();

    }

}

function CheckRadioInputs() {

    var list=document.getElementsByTagName("input"),length=list.length,checklist=new Array(),length2=checklist.length;

    var submit=true;

    for(var i=0;i<length;i++) {

        var obj=list[i];

        if(obj.type=='radio') {

            var doCheck=true;

            for(var j=0;j<length2;j++) {

                if(checklist[j]==obj.name) {

                    doCheck=false;

                    break;

                }

            }

            if(doCheck) {

                checklist[length2]=obj.name;

                var objlist=MM_findObj(obj.name),length3=objlist.length,checked1=false;

                if (length3>0) {

                    for(var k=0;k<length3;k++) {

                        if(objlist[k].checked) {

                            checked1=true;

                            break;

                        }

                    }	

                } else if (obj.checked) {

                    checked1=true;

                }

                if(!checked1) {

                    submit=false;

                    break;

                }

            }

        }

    }

    return submit;

}



function CheckCareerPlan1() {

    var list=document.getElementsByTagName("input"),length=list.length,checklist=new Array(),length2=checklist.length;

    var regexCareerPlan=new RegExp('^q[0-9]{1,2}','i');

    var submit=true;

    for(var i=0;i<length;i++) {

        var obj=list[i];

        if(obj.type=='radio') {

            var doCheck=true;

            var node = obj;

	        while(node!=null) {

		        if(node.tagName!=null && node.tagName=='DIV' && regexCareerPlan.test(node.id) && node.style.display=='none') {

			        doCheck=false;

			        break;

		        } else {

			        node = node.parentNode;

		        }

	        }

	        if(doCheck) {

                for(var j=0;j<length2;j++) {

                    if(checklist[j]==obj.name) {

                        doCheck=false;

                        break;

                    }

                }

                if(doCheck) {

                    checklist[length2]=obj.name;

                    var objlist=MM_findObj(obj.name),length3=objlist.length,checked1=false;

                    if (length3>0) {

                        for(var k=0;k<length3;k++) {

                            if(objlist[k].checked) {

                                checked1=true;

                                break;

                            }

                        }

                    } else if (obj.checked) {

                        checked1=true;

                    }

                    if(!checked1) {

                        submit=false;

                        break;

                    }

                }

            }

        }

    }

    return submit;

}



function SubmitForm(formId) {

    var submit=true, error='';

    switch(formId) {

        case 'careerready':

        case 'careerplan':

            submit=CheckCareerPlan1();

            if(!submit) {

                error='An option must be selected for each question.';

            }

            break;

    }

    if(submit) {

        var form=MM_findObj(formId);

        form.submit();

    } else if(error.length>0) {

        alert(error);

    }

}



function check(check) {

    var hidden=MM_findObj(check.name.replace('x','q'));

    if(!hidden) {

        hidden=MM_findObj(check.name.replace('x','qc'));

    }

    if(hidden) {

        hidden.value=check.checked?'1':'0';

    }

}

function check2(check) {

    check.value=check.checked?'1':'0';

}



var objInit=new Array();

function Initialise() {

    var len1=objInit.length;

    for(var i=0;i<len1;i++)

        eval(objInit[i]);

}



function InitAdd(fn1) {

    objInit[objInit.length]=fn1;

}



function checkxyz(checkElement,hiddenId) {

    var hiddenElement=MM_findObj(hiddenId);

    hiddenElement.value=checkElement.checked?'1':'0';

    var inputId=hiddenId.substring(0,hiddenId.lastIndexOf('_'));inputList=document.getElementsByTagName('input');inputListLength=inputList.length,criteriaGroupCount=0;

    for(var i=0;i<inputListLength;i++) {

        var input=inputList[i];

        if(input.name.length>=inputId.length) {

            if(input.name.substring(0,inputId.length)==inputId&&input.type.toLowerCase()=='hidden'&&parseInt(input.value)==1) {

                criteriaGroupCount++;

            }

        }

    }

    //alert(inputId);

    var inputElement=MM_findObj(inputId);

    inputElement.value=criteriaGroupCount;

}



var audio_on=true;

function toggle_imageaudio_alt(image) {

    if(audio_input_element==null) {

        audio_input_element=MM_findObj('audio');

        switch(audio_input_element.value) {

            case "0":

                audio_on=false;

                break;

            case "1":

                audio_on=true;

                break;

        }

        //alert(audio_input_element.value);

    }

    if(!audio_on) {

        image.src='images/audio_on_trans.gif';

    } else {

        image.src='images/audio_off_trans.gif';

    }

    audio_on=!audio_on;

    audio_input_element.value=audio_on?'1':'0';

}



function toggle_imageaudio(image,audio_name) {

    if(!audio_on) {

        image.src='images/audio_on_trans.gif';

    } else {

        image.src='images/audio_off_trans.gif';

    }

    audio_on=!audio_on;

    toggle_audio(audio_name);

}



function toggle_audio(audio_name) {

    var audio_id=get_audio_id(audio_name);

    if(audio_on) {

        soundManager.play(audio_id);

    } else {

        soundManager.stop(audio_id);

    }

    //alert(audio_input_element);

    if(audio_input_element==null) {

        audio_input_element=MM_findObj('audio');

        //alert(audio_input_element.value);

    }

    audio_input_element.value=audio_on?'1':'0';

}



var audio_sound_list=new Array();

function get_audio_id(audio_name) {

    var audio_id='',len1=audio_sound_list.length;

    for(var i=0;i<len1;i++) {

        if(audio_sound_list[i][1]==audio_name) {

            audio_id=audio_sound_list[i][0];

            break;

        }

    }

    if(audio_id=='') {

        audio_id='sound'+(len1+1);

        audio_sound_list[len1]=new Array();

        audio_sound_list[len1][0]=audio_id;

        audio_sound_list[len1][1]=audio_name;

        soundManager.createSound({id:audio_id,url:audio_name});

    }

    return audio_id;

}



var audio_input_element=null;



function page_tip(audio_name) {

    if(audio_input_element==null) {

        audio_input_element=MM_findObj('audio');

        switch(audio_input_element.value) {

            case "0":

                audio_on=false;

                break;

            case "1":

                audio_on=true;

                break;

        }

    }

    toggle_audio(audio_name);

}



function gov_tip(help_text,audio_name) {

    var audio_image='';

    if(audio_input_element==null) {

        audio_input_element=MM_findObj('audio');

        switch(audio_input_element.value) {

            case "0":

                audio_on=false;

                break;

            case "1":

                audio_on=true;

                break;

        }

    }

    if(audio_name.length>0) {

        var image_src=audio_on?'images/audio_on_trans.gif':'images/audio_off_trans.gif';

        audio_image='<div style="float:left;"><img onclick="toggle_imageaudio(this,\''+audio_name+'\');" src="'+image_src+'" style="height:18px;width:20px;"/></div>';

    }

    var close_button='<div style="float:right;"><input onclick="tt_HideInit();" type="button" value="Close"/></div>';

    var tip_html='<div style="display:blockl"><div style="padding-bottom:10px;">'+help_text+'</div>'+audio_image+close_button+'</div>';

    Tip(tip_html);

    toggle_audio(audio_name);

}



function SubmitStartForm(formId) {

    var submit=ValidateStartForm();

    if(submit) {

        SubmitForm(formId);

    }

}

function SubmitTermsForm(formId) {

    var submit=ValidateTermsForm();

    if(submit) {

        SubmitForm(formId);

    }

}

function ValidateTermsForm() {
	var errors='';

	var count = 0;
	var desire = document.getElementById("desire");
	var photos = document.getElementById("photos");
	var costs = document.getElementById("costs");
	var responsibility = document.getElementById("responsibility");
	var customs = document.getElementById("customs");
	var may = document.getElementById("june_3rd");
	var june = document.getElementById("june_25th");
	var july = document.getElementById("july");
	var august = document.getElementById("august");
	var september = document.getElementById("september");
	var october = document.getElementById("october");
	
	if(!desire.checked || !photos.checked || !costs.checked || !responsibility.checked || !customs.checked){
		errors+="Please agree to all terms.\n";
	}
	
	if(may.value != '') {
		count = count + 1;
	}
	if(june.value != '') {
		count = count + 1;
	}
	if(july.value != '') {
		count = count + 1;
	}
	if(august.value != '') {
		count = count + 1;
	}
	if(september.value != '') {
		count = count + 1;
	}
	if(october.value != '') {
		count = count + 1;
	}
	
	if(count != 3) {
		errors+="Please label ONLY three boxes with your preferences.";
	}

    if (errors) {
        alert('The following error(s) occurred:\n'+errors);
    }

    return (errors == '');
}

function ValidateStartForm() {

    var errors='';

//    errors=ValidateForm('yourName','Name','R','yourEmail','Email','RisEmail','yourEmailCheck','Re-enter Email','RisEmail','yourState','State','R');

    errors=ValidateForm('yourName','Name','R','yourState','State','R','yourPhone','Phone','R','yourMobile','Mobile','R','yourParent','Parent/Caregiver','R','yourParentContact','Parent/Caregiver Contact','R','yourSchool','School','R','yourSchoolContact','School Contact','R');

    var yourEmail=MM_findObj('yourEmail'),yourEmailCheck=MM_findObj('yourEmailCheck');

    if((trim1(yourEmail.value)!=''||trim1(yourEmailCheck.value)!='')&&yourEmail.value!=yourEmailCheck.value) {

        errors+='- Email does not match the confirmation Re-enter Email.\n';

    }

    var year = document.getElementsByName("yourYear");
    var i;
    var checked = 0;
    for(i=0; i<year.length; i++) {
    	if(year[i].checked) {
    		checked = 1;
    	}
    }
	
    if(!checked) {
    	errors+="Please select a year.\n";
    }

	var agree = document.getElementById("agree");

	if(!agree.checked){

		errors+="Please tick the 'I acknowledge..' tickbox!";

	}

	

    if (errors) {

        alert('The following error(s) occurred:\n'+errors);

    }

    return (errors == '');

}



var regexR = new RegExp('^(\\s)?$','i');

var regexIsDateTime = new RegExp('^[0-9]{2}/[0-9]{2}/[0-9]{4}$','i');

var regexIsEmail = new RegExp('^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$','i');

var regexIsPhone = new RegExp('^(\\(?\\+?[0-9]*\\)?)?[0-9_\\- \\(\\)]*$','i');

var regexIsURL = new RegExp('^(http|https|ftp)\\://[a-zA-Z0-9\\-\\.]+\\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\\-\\._\\?\\,\'/\\\+&%\$#\\=~])*[^\\.\\,\\)\(\\s]$','i');



function ValidateForm() {

   var i,p,q,nm,test,num,min,max,errors='',args=ValidateForm.arguments;

   for (i=0; i<(args.length-2); i+=3) {

      test=args[i+2];

      val=MM_findObj(args[i]);

      if (val) {

         nm=args[i+1];

         if (nm=="")

            nm=val.name;

         if ((val=getInputValue(val))!="") {

            if (test.indexOf('isEmail')!=-1) {

               if (!regexIsEmail.test(val))

                  errors+='- '+nm+' must contain an e-mail address.\n';

            } else if (test.indexOf('isDateTime')!=-1) {

               if (!regexIsDateTime.test(val))

                  errors+='- '+nm+' must contain a datetime.\n';

            } else if (test.indexOf('isPhone')!=-1) {

               if (!regexIsPhone.test(val))

                  errors+='- '+nm+' must contain a phone number.\n';

            } else if (test.indexOf('isURL')!=-1) {

               if (!regexIsURL.test(val))

                  errors+='- '+nm+' must contain a url.\n';

            } else if (test!='R') {

               num = parseFloat(val);

               if (isNaN(val))

                  errors+='- '+nm+' must contain a number.\n';

               if (test.indexOf('inRange') != -1) {

                  p=test.indexOf(':');

                  min=test.substring(8,p);

                  max=test.substring(p+1);

                  if (num<min || max<num)

                     errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';

               }

            }

         } else if (test.charAt(0) == 'R') {

            errors += '- '+nm+' is required.\n';

         }

      }

   }

    return errors;

}

function getInputValue(obj) {

    switch (obj.tagName) {

        case "INPUT":

            switch (obj.type) {

                case "radio":

                case "checkbox":

                    var len=obj.length;

                    if (len>0) {

                        for(var i=0;i<len;i++) {

		                    if(obj[i].checked) {

			                    return trim1(obj[i].value);

		                    }

	                    }	

                    } else if (obj.checked) {

                        return trim1(obj.value);

                    }

                    break

                default:

                    return trim1(obj.value);

                    break;

            }

        case "TEXTAREA":

            return trim1(obj.value);

            break;

        case "SELECT":

            return trim1(obj.options[obj.selectedIndex].value);

            break;

        default:

            var len=obj.length;

            if (len>0) {

                for(var i=0;i<len;i++) {

                    if(obj[i].checked) {

	                    return trim1(obj[i].value);

                    }

                }	

            } else if (obj.checked) {

                return trim1(obj.value);

            }

            break;

    }

    return '';

}

function trim1(stringToTrim) {

	return stringToTrim.replace(/^\s+|\s+$/g,"");

}

function checkClear(obj,i,j) {

    //alert('fucker');

    check(obj,i);

    clear(obj,j);

}

function clear(obj,val) {

    //alert('fucker');

}

function whynav(career_id, audio_name) {

    var audio_id = get_audio_id(audio_name);

    soundManager.stop(audio_id);

    

    var audio = MM_findObj('audio');

    var url = 'careerwhy.php?career_id='+career_id+'&audio='+audio.value;

    window.open(url,'Career','scrollbars=yes,width=1024,height=768,center=yes,directories=yes,status=yes,toolbar=yes,menubar=yes,resizable=yes,location=yes').focus();

}

function goonsubmit(form,url) {

    var audio = MM_findObj('audio');

    url += '?audio='+audio.value;

    form.action = url;

    //alert(form.action);

    form.submit();

}

function urlnav(url) {

    var audio = MM_findObj('audio');

    url += (url.indexOf('?') >= 0) ? '&audio='+audio.value : '?audio='+audio.value;

    document.location.href=url;

}

function DisplayFlash(name)

{

    document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="800" height="385">\n');

    document.write('<param name="movie" value="'+name+'">\n');

    document.write('<param name="quality" value="high">\n');

    document.write('<param name="menu" value="false">\n');

    document.write('<param name="BGCOLOR" value="#000000">\n');

    document.write('<param name="wmode" value="transparent">\n');

    document.write('<embed src="'+name+'" width="780" height="400" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" bgcolor="#000000" wmode="transparent"></embed></object>\n');

}
