/*****************************************************
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 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');
    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';
    }
    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');
}





















