var glbElem;

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function scrolling(elem){
	page = document.getElementById(elem+'_page');
	cPage = page.value-0;
	mPages = document.getElementById(elem+'_mpages').value-0;
	var max = document.getElementById(elem+'_scrollDiv').scrollHeight - document.getElementById(elem+'_scrollDiv').clientHeight; // bottom
	var curr = document.getElementById(elem+'_scrollDiv').scrollTop;
	if (curr == max) {
		if(cPage < mPages){
			page.value++;
			ind = document.getElementById(elem+'_indicator');
			ovr = document.getElementById(elem+'_overlay');
			ovr.style.visibility="visible";
			ind.style.visibility="visible";
			xajax_getNextResultGroup(cPage);
		}
	}	
}

function showFormIndicator(){
	document.getElementById('form_overlay').style.visibility="visible";
	document.getElementById('form_indicator').style.visibility="visible";
}

function closeIndicator(elem){
	document.getElementById(elem+'_overlay').style.visibility="hidden";
	document.getElementById(elem+'_indicator').style.visibility="hidden";
}

function showIndicator(elem){
	document.getElementById(elem+'_overlay').style.visibility="visible";
	document.getElementById(elem+'_indicator').style.visibility="visible";
}

function setHeaderColor(hdr){
	var elem = null;
	for(var i=0;i<headers.length;i++){
		elem = document.getElementById(headers[i]);
		elem.style.color='#999999';
		if(headers[i] == hdr)
			elem.style.color='#000000';						
	}
}

function reorder(order, elem, hdr){
	Effect.Pulsate(hdr, {duration: 1.5, pulses: 3});
	setHeaderColor(hdr);
	document.getElementById(elem+'_scrollDiv').scrollTop = 0;
	document.getElementById(elem+'_page').value = 1;
	document.getElementById(elem+'_indicator').style.visibility="visible";
	document.getElementById(elem+'_overlay').style.visibility="visible";
	xajax_reorder(order);
	return false;
}

function hotkeySearch(elem,txt){
	document.getElementById(elem+'_indicator').style.visibility="visible";
	document.getElementById(elem+'_overlay').style.visibility="visible";
	xajax_hotkeySearch(txt);
}

function clearWhiteSpace(){
	var txt, i;
	txt = document.getElementsByTagName('input');
	for(i=0; i<txt.length; i++){
		if(txt[i].type == 'text' && txt[i].value.match(/^\s*$/)){
			txt[i].value = '';
		}
	}
}

function resetColors(){
	document.getElementById('msg').innerHTML = "&nbsp;";	
	for(var i=0; i<vf.length; i++){
    document.getElementById(vf[i]+"_lbl").style.color = '#414141';
  }
}

function delayedSetFocus(){
		if(glbElem != null)
    	glbElem.focus();
}

function verifyInfo(elem){
	clearWhiteSpace();
	resetColors();
	var fck = 0;
	first = true;
	var errMsg = "Missing Required Information.\nSee areas marked in Red:";
	var valid = true;
	var item = '';
	var iVal = new String();
	
	for(var i=0;i<vf.length;i++){
		item = document.getElementById(vf[i]+"_id");
		iVal = item.value;
		iVal = iVal.trim();
		switch (vf[i]){
			case 'email':
			if(! validEmail(iVal)){
				valid = false;
				errMsg += "\n"+errMsgs[i];
				document.getElementById(vf[i]+"_lbl").style.color = 'red';
				if(first){
					glbElem = item;
					first = false;
				}
			}
			break;
		case 'phone':
			if(iVal.length != 10){
				valid = false;
			  errMsg += "\n"+errMsgs[i];
			  document.getElementById(vf[i]+"_lbl").style.color = 'red';
			  if(first){
			  	glbElem = item;
			    first = false;
			  }
			}
			break;
		default :
			if(iVal.length == 0 || iVal == 0){
				valid = false;
			  errMsg += "\n"+errMsgs[i];
			  document.getElementById(vf[i]+"_lbl").style.color = 'red';
			  if(first){
			  	glbElem = item;
			    first = false;
			  }
			}
		}
	}
	if(! valid){
		document.getElementById('msg').innerHTML = "Missing Required Information...";
		alert(errMsg);
  	//setTimeout('delayedSetFocus()', 100);
	}
	else{
		if(fck){
			prepFCKText(elem);
		}
	}
	return valid;
}

function prepFCKText(elem){
	var answerLength = fckLength();
	if(answerLength > 0){
		var oEditor = FCKeditorAPI.GetInstance('c_message');
		document.getElementById(elem+'_id').value = oEditor.EditorDocument.body.innerHTML;
	}
	else
		document.getElementById(elem+'_id').value = "";
}

function fckLength(){
	// Get the editor instance that we want to interact with.
	var oEditor = FCKeditorAPI.GetInstance('c_message') ;
	// Get the Editor Area DOM (Document object).
	var oDOM = oEditor.EditorDocument ;
	var iLength ;
	
	if ( document.all ){
		// If Internet Explorer.
		iLength = oDOM.body.innerText.length ;
	}
	else{
		// If Gecko.
		var r = oDOM.createRange() ; 
		r.selectNodeContents( oDOM.body ) ;
		iLength = r.toString().length ;
	}
	return iLength;
}

function validEmail(email){
    var tValid = true;
    if((email.length < 8) ||
        ((email.length>0) && (! email.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi)))){
        tValid = false;
        if(first){
            first = false;
            glbElem = email;
        }
    }
    return tValid;
}

function isNumberKey(evt){
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)){
        if(charCode == 32 || (charCode >= 44 && charCode <= 46)){
            return true;
        }
        else{
            return false;
        }
    }
    return true;
}

function clearForm(){
	resetColors();
	var elem;
	for(var i in cf){
		elem = document.getElementById(i);
		elem.value = cf[i];
	}
}