// -- Adobe GoLive JavaScript Library
// -- Global Functions
CSInit = new Array;
CSExit = new Array;
CSStopExecution=false;
function CSAction(array) {return CSAction2(CSAct, array);}
function CSAction2(fct, array) { 
	var result;
	for (var i=0;i<array.length;i++) {
		if(CSStopExecution) return false; 
		var aa = fct[array[i]];
		if (aa == null) return false;
		var ta = new Array;
		for(var j=1;j<aa.length;j++) {
			if((aa[j]!=null)&&(typeof(aa[j])=="object")&&(aa[j].length==2)){
				if(aa[j][0]=="VAR"){ta[j]=CSStateArray[aa[j][1]];}
				else{if(aa[j][0]=="ACT"){ta[j]=CSAction(new Array(new String(aa[j][1])));}
				else ta[j]=aa[j];}
			} else ta[j]=aa[j];
		}			
		result=aa[0](ta);
	}
	return result;
}
CSAct = new Object;
function CSClickReturn () {
	var bAgent = window.navigator.userAgent; 
	var bAppName = window.navigator.appName;
	if ((bAppName.indexOf("Explorer") >= 0) && (bAgent.indexOf("Mozilla/3") >= 0) && (bAgent.indexOf("Mac") >= 0))
		return true; // dont follow link
	else return false; // dont follow link
}
// -- Action Functions
function CSFieldValidatePlus(action) { 
var form = action[1];
var elem = action[2];
//var theEntry  = document.forms[form].elements[elem].value
//var theFormElem = document.forms[form].elements[elem]
var badEntry = ""
	function theAlert() { 
		alert(action[6]);
		theFormElem.focus();
		theFormElem.select();
	}  	
	function isEmpty() { 
	for (i=0; i<document.forms[form].elements.length; i++) {
	  		if (document.forms[form].elements[i].name.indexOf(elem) >=0) {
	  			theEntry = document.forms[form].elements[i].value;
	  			theFormElem = document.forms[form].elements[i];
				if (theEntry == "") { 
					theAlert();
					break;
				} 
			}
	}	
	}
	function isNumber() { 
		for (i=0; i<document.forms[form].elements.length; i++) {
	  		if (document.forms[form].elements[i].name.indexOf(elem) >=0) {
	  			theEntry = document.forms[form].elements[i].value;
	  			theFormElem = document.forms[form].elements[i];
				if (theEntry == "") { 
				theAlert();
				break;
				} 		
				for (i=0; i<theEntry.length; i++) {  
					if (theEntry.charAt(i) < "0" || theEntry.charAt(i) > "9") {  
						badEntry = "notnumber"
						} 
					}  		
				if (badEntry == "notnumber") {
				theAlert();
				break;	
				}
				else if (action[4] != "") {
					requiredChars();
				}	
			}
		}
	} 
		
	function isAlpha() { 
	for (i=0; i<document.forms[form].elements.length; i++) {
	  		if (document.forms[form].elements[i].name.indexOf(elem) >=0) {
	  			theEntry = document.forms[form].elements[i].value;
	  			theFormElem = document.forms[form].elements[i];
			if (theEntry == "") { 
			theAlert();
			break;
			} 		
		for (i=0; i<theEntry.length; i++) {  
			if (theEntry.charAt(i) >= "0" && theEntry.charAt(i) <= "9") {  
				badEntry = "notalpha"
				} 
			}  		
		if (badEntry == "notalpha") {
		theAlert();
		break;	
		}	
		else if (action[4] != "") {
			requiredChars();
		}	
		}
		}
	} 
				
	function requiredChars() {
	for (i=0; i<document.forms[form].elements.length; i++) {
	  		if (document.forms[form].elements[i].name.indexOf(elem) >=0) {
	  			theEntry = document.forms[form].elements[i].value;
	  			theFormElem = document.forms[form].elements[i];
	numofChars = theEntry.length
		if (numofChars != action[4]) {
			theAlert();
			break;
		} 
	}	
	function exactString() {
		if (theEntry != action[5]) {
			theAlert();
		} 
		}
		}
	}	
	
	function validEmail() {
		re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/  //invalid email	
		for (i=0; i<document.forms[form].elements.length; i++) {
			if (document.forms[form].elements[i].name.indexOf(elem) >=0) {
	  			theEntry = document.forms[form].elements[i].value;
	  			theFormElem = document.forms[form].elements[i];
				if (re.test(theEntry)) { 	// if its invalid
					return true
				}
				theAlert();
				return false
			}
		}
	}
	
	function validCC() { 
	for (i=0; i<document.forms[form].elements.length; i++) {
	  		if (document.forms[form].elements[i].name.indexOf(elem) >=0) {
	  			theEntry = document.forms[form].elements[i].value;
	  			theFormElem = document.forms[form].elements[i];
	var theNumber = new Array(theEntry.length);
	var i = 0
	var total = 0
		for (i = 0; i < theEntry.length; ++i) {
		theNumber[i] = parseInt(theEntry.charAt(i))
		}
		for (i = theNumber.length -2; i >= 0; i-=2) {  
		theNumber[i] *= 2;							 
		if (theNumber[i] > 9) theNumber[i]-=9;			 
		}										 
		for (i = 0; i < theNumber.length; ++i) {
		total += theNumber[i];						 
		}	
		if ((total%10)!=0) {
		theAlert();
		break;
		}
		}
		}
	}
	
	function validURL() {
	for (i=0; i<document.forms[form].elements.length; i++) {
	  		if (document.forms[form].elements[i].name.indexOf(elem) >=0) {
	  			theEntry = document.forms[form].elements[i].value;
	  			theFormElem = document.forms[form].elements[i];
		if (theEntry == "") { 
			theAlert();
			break;
			} 
		re = /^(http):\/\/\S+\.(\w){2,6}$/i
			if (!(re.test(theEntry))) {
				theAlert();
				break;
			}
			}
			}
	}
	
	function validPhone() {
	for (i=0; i<document.forms[form].elements.length; i++) {
	  		if (document.forms[form].elements[i].name.indexOf(elem) >=0) {
	  			theEntry = document.forms[form].elements[i].value;
	  			theFormElem = document.forms[form].elements[i];
		if (theEntry == "") { 
			theAlert();
			break;
			} 
		rePhone = /^\(?(\d{3})\)?[\.\-\/ ]?(\d{3})[\.\-\/ ]?(\d{4})$/
		validPhone = rePhone.exec(theEntry)
		if (validPhone) {
			document.forms[form].elements[elem].value = "(" + validPhone[1] + ") " + validPhone[2] + "-" + validPhone[3];
		}
		else {
			theAlert();
			break;
		}
		}
		}
	}
	
	function validSSN() {
	for (i=0; i<document.forms[form].elements.length; i++) {
	  		if (document.forms[form].elements[i].name.indexOf(elem) >=0) {
	  			theEntry = document.forms[form].elements[i].value;
	  			theFormElem = document.forms[form].elements[i];
		if (theEntry == "") { 
			theAlert();
			break;
			} 
		reSSN = /^(\d{3})[\.\-\/ ]?(\d{2})[\.\-\/ ]?(\d{4})$/
		validSSN = reSSN.exec(theEntry)
		if (validSSN) {
			document.forms[form].elements[elem].value = validSSN[1] + "-" + validSSN[2] + "-" + validSSN[3];
		}
		else {
			theAlert();
			break;
		}
		}
		}
	}
	
	function validDOB() {
	for (i=0; i<document.forms[form].elements.length; i++) {
	  		if (document.forms[form].elements[i].name.indexOf(elem) >=0) {
	  			theEntry = document.forms[form].elements[i].value;
	  			theFormElem = document.forms[form].elements[i];
		if (theEntry == "") { 
			theAlert();
			break;
			} 
		reDOB = /^(\d{2})[\.\-\/ ]?(\d{2})[\.\-\/ ]?(\d{2})$/
		validDOB = reDOB.exec(theEntry)
		if (validDOB) {
			document.forms[form].elements[elem].value = validDOB[1] + "/" + validDOB[2] + "/" + validDOB[3];
		}
		else {
			theAlert();
			break;
		}
		}
		}
	}
	
var type=action[3];
if(type==0) isEmpty()
else if(type==1) isNumber()
else if(type==2) isAlpha()
else if(type==3) requiredChars()
else if(type==4) exactString()
else if(type==5) validEmail()
else if(type==6) validCC()
else if(type==7) validURL()
else if(type==8) validPhone()
else if(type==9) validSSN()
else if(type==10) validDOB()
}
var textErrFlag=false // Copyright 2001 Michael Åhgren version: 011003 1313 
var radioErrFlag=false
var selectErrFlag=false
var errMsg=null
var color=""
var radioArray=new Array()
var selectArray=new Array()
var radioCount=0
var selectCount=0
var colorTest=false
var errColor=null
var colorEnabled=false
function CSinitCheck(action){
colorEnabled=action[10]
textErrFlag=false
radioErrFlag=false
selectErrFlag=false
errColor=action[8]
var testForm=eval("document."+action[9])
errFlag=false
action[4]!="" ? errMsg=action[4]+"\n" : errMsg='The following problems have been detected:\n'
for(var i=0; i< testForm.length;i++){
var target=testForm.elements[i]
	if (!document.layers){
	!colorTest ? target.orgcol=target.style.backgroundColor : target.style.backgroundColor= target.orgcol
	}
	if(target.type=="select-one"|| target.type=="select-multiple"){
	CSbuildSelectArray (testForm.elements[i])	
	target.size>1 ? target.unChecked=-1 : target.unChecked=-0
	}
	if(target.type=="radio") CSbuildRadioArray(target)		
	if(target.type=="text"|| target.type=="textarea"){
	target.empty=false
	}
}
colorTest=true
if(action[1]!=""){
	var emptCheck=CSsplitFieldNames(action[1])
	var times1=emptCheck.length
	CSrunCheck(1,emptCheck,times1,testForm,action[10],action[7])
}
if(action[2]!=""){
	var emailCheck=CSsplitFieldNames(action[2])
	var times2=emailCheck.length
	CSrunCheck(2,emailCheck,times2,testForm,action[10],action[5])
}
if(action[3]!=""){
	var phoneCheck=CSsplitFieldNames(action[3])
	var times3=phoneCheck.length
	CSrunCheck(3,phoneCheck,times3,testForm,action[10],action[6])
}
if(action[11]!=""){
	var radioCheck=CSsplitFieldNames(action[11])
	for( i=0;i< radioCheck.length;i++){
	CSradioTest(radioCheck[i],action[10],action[13])
}
}
if (action[12]!=""){
var selectCheck=CSsplitFieldNames(action[12])
for( i=0;i< selectCheck.length;i++){
CSselectTest(selectCheck[i],action[10],action[14])
}
selectCount=0
}
if (textErrFlag || radioErrFlag || selectErrFlag){
alert(errMsg)
}else{
testForm.submit()
}
}
function CSrunCheck(type,data,times,formName,bColor,msgAction){
	for(var i=0; i< formName.length;i++){
	var target=formName.elements[i]
		if(target.type=="text"|| target.type=="textarea"||target.type=="password"){
			var target=formName.elements[i]
				for(var j=0; j< times; j++){	
					if(type==1){					
						if(target.name	==data[j]&&target.value==""){
						msgAction!="" ? errMsg+=(msgAction+' "'+target.name+'"\n') : errMsg+=('The field "'+target.name+'" is empty.\n');
						target.empty=true
						CSsetColor(target)
						textErrFlag=true
						}
					}
					if(type==2){
						var reE=/^[\w\S?]+@(\w|\w\S?\w|\w[\w+\S+]+\w)\.\w{2,3}\b/
						var reTest=reE.test(target.value)
						if (navigator.userAgent.indexOf("Opera")!=-1) reTest=true
						var reE2at=/@/
						reE2at.test(target.value)
						var test2at=RegExp.rightContext
						if(target.name==data[j] && !target.empty&& ( target.value.indexOf("@",1)==-1 || 	target.value.indexOf(".",1)==-1 || !reTest || target.value.indexOf(".")==0 || reE2at.test(test2at))){
						msgAction !="" ? errMsg+=(msgAction+' "'+target.name+'"\n') : errMsg+=('The field "'+target.name+'" contains an incorrect E-mail address.\n');
						CSsetColor(target) 
						target.empty=true
						textErrFlag=true
						}
					}
					if(type==3){
						var reP=/[!"@£¤$%#&=?\\^'*åäöÅÄÖ;:,><§µ½*\|]|[a-z]|[A-Z]/ 
						if(target.name	==data[j] &&  reP.test(target.value)&& !target.empty){
					msgAction!="" ? errMsg+=(msgAction+' "'+target.name+'"\n') :errMsg+=('The field "'+target.name+'" contains illegal charater(s).\n');
						CSsetColor(target)
						textErrFlag=true;				
					}
				}		
			}
		}
	}
}
function CSsplitFieldNames(fieldNames){
afterSplit=fieldNames.split(",")
return afterSplit
}
function CSsetColor(target){
	if (!document.layers && colorEnabled){
	target.style.backgroundColor=errColor
}	
} 
function CSbuildRadioArray(target){
radioArray[radioCount]=target
radioCount++
}
function CSradioTest(groupName,bColor,msgAction){
var testResult=false
for (i=0;i< radioCount;i++){
	if(radioArray[i].name==groupName&&radioArray[i].checked){
		testResult=true
		break
	}
}
	if(!testResult){
		msgAction!="" ? errMsg+=(msgAction+' "'+groupName+'"\n') : errMsg+=('No radio button has been selected for: "'+groupName+'".\n');						
		radioErrFlag=true
			for (i=0;i< radioArray.length;i++){
				if(radioArray[i].name==groupName)
					CSsetColor(radioArray[i])			
		}
	}
radionCount=0
}
function CSbuildSelectArray(target){
selectArray[selectCount]=target
selectCount++
}
function CSselectTest(listName,bColor,msgAction){
for (var i=0;i < selectCount;i++){
	if (selectArray[i].name==listName && selectArray[i].selectedIndex==0 && 		selectArray[i].unChecked==0)  {
		msgAction!="" ? errMsg+=(msgAction+' "'+selectArray[i].name+'"\n') : errMsg+=('No selection has been made from the list: "'+ selectArray[i].name+'"\n')	;				
		CSsetColor(selectArray[i])
		selectErrFlag=true			
		}
	} 
} // Copyright 2001 Michael Åhgren
// OUT Execute JavaScript Action
// Script copyright 1999, OUT Media Design GmbH. All rights reserved.
function OUTexecuteJS(action) {
	return eval(action[1]);
}
function CSGotoLink(action) {
	if (action[2].length) {
		var hasFrame=false;
		for(i=0;i<parent.frames.length;i++) { if (parent.frames[i].name==action[2]) { hasFrame=true; break;}}
		if (hasFrame==true)
			parent.frames[action[2]].location = action[1];
		else
			window.open (action[1],action[2],"");
	}
	else location = action[1];
}
// EOF
