function checkFormFields(form) {
	var formElements = form.elements;
	for(i=0; i<formElements.length; i++) {
		if(formElements[i].name.substr(0,4) == 'req_') {
			if(trim(formElements[i].value) == '') {
				return false;	
			}
		}
	}
	
	return true;
}

function trim(str) { 
	return str.replace(/(^\s*)|(\s*$)/g,"");
}

function checkAll(fieldName) {
	var box = document.getElementsByName(fieldName);
	for(i=0;i < box.length; i++) {
		box[i].checked = true;
	}
}

function unCheckAll(fieldName) {
	var box = document.getElementsByName(fieldName);
	for(i=0;i < box.length; i++) {
		box[i].checked = false;
	}
}

function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
		
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) 
		return false

	var user=matchArray[1]
	var domain=matchArray[2]
	
	if (user.match(userPat)==null) 
		return false

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
			if (IPArray[i]>255)
				return false
		}
		return true
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null)
		return false

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3)
	   return false

	if (len<2)
	   return false

	return true;
}

function genDate(yearID,monthID,dayID)
{
	if(document.getElementById(yearID).value != "0000" && document.getElementById(monthID).value != "00")
	{
		var dateset1 = new Array(31,29,31,30,31,30,31,31,30,31,30,31)
		var dateset2 = new Array(31,28,31,30,31,30,31,31,30,31,30,31)
		var remonth = document.getElementById(monthID).selectedIndex
		
		if ((document.getElementById(yearID).value % 4) == 0)
			document.getElementById(dayID).options.length = dateset1[remonth-1] + 1;
		else
			document.getElementById(dayID).options.length = dateset2[remonth-1] + 1;
			
		document.getElementById(dayID).options[0].text = "Day";
		document.getElementById(dayID).options[0].value = "00";	
		
		for(i=1;i<=document.getElementById(dayID).options.length-1;i++)
		{
			document.getElementById(dayID).options[i].text = i;
			document.getElementById(dayID).options[i].value = i;
		}
	}
}

function genDate2(yearID,monthID,dayID)
{
		var dateset1 = new Array(31,29,31,30,31,30,31,31,30,31,30,31)
		var dateset2 = new Array(31,28,31,30,31,30,31,31,30,31,30,31)
		var remonth = document.getElementById(monthID).selectedIndex

		if ((document.getElementById(yearID).value % 4) == 0)
			document.getElementById(dayID).options.length = dateset1[remonth];
		else
			document.getElementById(dayID).options.length = dateset2[remonth];
		
		for(i=1;i<=document.getElementById(dayID).options.length;i++)
		{
			document.getElementById(dayID).options[i-1].text = i;
			document.getElementById(dayID).options[i-1].value = i;
		}
}

function numOnly(str) 
{
		var output = "";

		for (i=0; i<str.value.length; i++) 
		{
			if (str.value.substr(i,1) >= "0" && str.value.substr(i,1) <= "9")
				output += str.value.substr(i,1);
		}
		str.value = output;
}

function handleEnter (functionName, event) 
{	
	if (event.keyCode == 13) 
	{
		eval(functionName);
		return false;
	} 
	else
	{
		return true;
	}
}

function stopRKey(evt) 
{
	var evt = (evt) ? evt : ((event) ? event : null);
	var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
	if ((evt.keyCode == 13) && ((node.type=="text") || (node.type=="password"))) 
	{
	   	return false;
	}
}

function checkCheckBox(checkBoxName)
{
	var boxcheck = false;
	var itemID = document.getElementsByName(checkBoxName);

	for(i=0; i<itemID.length; i++)
	{
		if(itemID[i].checked)
		{
			boxcheck = true;
			break;
		}
	}
	
	return boxcheck;
}

function confirmDelete()
{
	if(!confirm("Are you sure?"))
		return false;
	
	return true;
}

function getRadioValue(elementName)
{
    var element = document.getElementsByName(elementName);
    var bt_count = element.length;
 
    for (var i = 0; i <bt_count; i++)
        if (element[i].checked == true)
            return element[i].value;
}

function openNoMenuWindow(page,pageName,width,height)
{
		window.open(page, pageName, 'toolbar=no,location=no,directories=no,menubar=no,status=no,scrollbars=yes,resizable=yes,width='+width+',height='+height);	
} 

function rawurlencode (str) 
{
    var hexStr = function (dec) 
	{
        return '%' + dec.toString(16).toUpperCase();
    };

    var ret = '',
            unreserved = /[\w.~-]/;
    str = (str+'').toString();

    for (var i = 0, dl = str.length; i < dl; i++) 
	{
        var ch = str.charAt(i);
        if (unreserved.test(ch))
		{
            ret += ch;
        }
        else 
		{
            var code = str.charCodeAt(i);
            
            if (code < 128) 
			{ 
                ret += hexStr(code);
            }
            else if (code >= 128 && code < 2048) 
			{ 
                ret += hexStr((code >> 6) | 0xC0);
                ret += hexStr((code & 0x3F) | 0x80);
            }
            else if (code >= 2048 && code < 65536) 
			{ 
                ret += hexStr((code >> 12) | 0xE0);
                ret += hexStr(((code >> 6) & 0x3F) | 0x80);
                ret += hexStr((code & 0x3F) | 0x80);
            }
            else if (code >= 65536) 
			{ 
                ret += hexStr((code >> 18) | 0xF0);
                ret += hexStr(((code >> 12) & 0x3F) | 0x80);
                ret += hexStr(((code >> 6) & 0x3F) | 0x80);
                ret += hexStr((code & 0x3F) | 0x80);
            }
        }
    }
    return ret;
}

function doAddObj(objCode,obj) {
		
	userTextArea = document.getElementById(obj);

	if (document.selection) {
		
		userTextArea.focus();
		var sel = document.selection.createRange();
		sel.text = objCode;
		
	} else {
		
		var len = userTextArea.value.length;
		var start = userTextArea.selectionStart;
		var end = userTextArea.selectionEnd;
		
		var scrollTop = userTextArea.scrollTop;
		var scrollLeft = userTextArea.scrollLeft;
		
		var sel = userTextArea.value.substring(start, end);

		var rep = objCode;
		userTextArea.value =  userTextArea.value.substring(0,start) + rep + userTextArea.value.substring(end,len);
		
		userTextArea.scrollTop = scrollTop;
		userTextArea.scrollLeft = scrollLeft;
	}
}

function doAddTags(tag1,tag2,obj) {
		
	userTextArea = document.getElementById(obj);

	if (document.selection) {
		
		userTextArea.focus();
		var sel = document.selection.createRange();
		sel.text = tag1 + sel.text + tag2;
		
	} else {
		
		var len = userTextArea.value.length;
		var start = userTextArea.selectionStart;
		var end = userTextArea.selectionEnd;
		
		var scrollTop = userTextArea.scrollTop;
		var scrollLeft = userTextArea.scrollLeft;
		
		var sel = userTextArea.value.substring(start, end);

		var rep = tag1 + sel + tag2;
		userTextArea.value =  userTextArea.value.substring(0,start) + rep + userTextArea.value.substring(end,len);
		
		userTextArea.scrollTop = scrollTop;
		userTextArea.scrollLeft = scrollLeft;
	}
}

function printPartOfInfo(partData) {
	
	 var iframe =document.createElement('iframe');
	 iframe.width=0;
	 iframe.height=0;
	 document.body.appendChild(iframe);

	 if(iframe) {   
	
		var ifWin = iframe.contentWindow || iframe;
		ifWin.document.open();
		ifWin.document.write(partData);
		ifWin.document.close();
		ifWin.focus();
		ifWin.print();
	 }
	iframe.parentNode.removeChild(iframe);
}

function replaceString(str,currentWord,replaceWord) {
	
	var intIndexOfMatch = str.indexOf(currentWord);

	while (intIndexOfMatch != -1){
	
		str = str.replace(currentWord,replaceWord)
		intIndexOfMatch = str.indexOf(currentWord);
	}
	return str;
}

function changePicSrc(imgID,picPath) {
	
	imgID.src = picPath;
}

function changeBGPic(elem,picPath) {
	
	elem.style.backgroundImage = "url(" + picPath + ")";
}