function createCookie(name,value) {
	document.cookie = name+"="+value+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function showAdv() {
	if(arguments[0].innerHTML == 'basic search') {
		arguments[0].innerHTML = 'advanced search';
		createCookie('quick_search','0');
	}
	else {
		arguments[0].innerHTML = 'basic search';
		createCookie('quick_search','1');
	}
	for(var i=1;i<arguments.length;i++) {
		var el = document.getElementById(arguments[i]);
		if(el.style.display == 'none') {
			try {
				el.style.display = 'table-row';
			} catch (e) {
				el.style.display = '';
			}
			document.getElementById('job_type_id').disabled = false;
			document.getElementById('company_id').disabled = false;
			document.getElementById('skills_tags_id').disabled = false;
			document.getElementById('qs-title').innerHTML = 'Advanced Search';

		}
		else {
			el.style.display = 'none';
			document.getElementById('job_type_id').disabled = true;
			document.getElementById('company_id').disabled = true;
			document.getElementById('skills_tags_id').disabled = true;
			unSelect('skills_tags_id');
			document.getElementById('qs-title').innerHTML = 'Search Job Ads';
		}
	}
}
function unSelect(id) {
	var s = document.getElementById(id);
	while(s.selectedIndex >= 0) {
		s.options[s.selectedIndex].selected = false;
	}
}
function sefCreate(obj, address) {
	var address_end = '';
	for(var i=0;i<obj.length;i++) {
		if(obj[i].type.indexOf('text') == 0 && obj[i].value.length>1) {
			address_end += obj[i].name+'/'+encodeURIComponent(obj[i].value).replace(/%20/g,'+');
		}
		else if(obj[i].type.indexOf('select-one') == 0 && obj[i].value!=0) {
			address += obj[i].name+'/'+obj[i].value+'/';
		}
		else if(obj[i].type.indexOf('select-multi') == 0) {
			var temp = new Array(0);
			for(var j=0;j<obj[i].options.length;j++) {
				if(obj[i].options[j].selected) {
					temp.push(obj[i].options[j].value);
				}
			}
			if(temp.length>0) {
				var shortName = obj[i].name.substring(0,obj[i].name.length-2);
				address += shortName+'/'+temp.join(".")+'/';
			}
		}
	}
	return address+address_end;
}
function checkEmail(email,show) {
	if (email.search(/^[A-Za-z0-9]+([._-][A-Za-z0-9]+)*@[A-Za-z0-9]+([._-][A-Za-z0-9]+)*\.[A-Za-z0-9]{2,6}$/) == -1) {
		if(show) {
			alert('Please correct your email address: '+email);
		}
		return false;
	}
	return true;
}
function clearCheckbox(obj) {
	for(var i=0;i< obj.elements.length;i++) {
		if(obj.elements[i].type == 'checkbox') {
			obj.elements[i].checked = false;
		}
	}
	return true;
}

function clearForm(obj) {
	for(i=0;i<obj.elements.length;i++) {
		if (obj.elements[i].type == "radio") {
			obj.elements[i].checked = false;
		}
		else if (obj.elements[i].type == "checkbox") {
			obj.elements[i].checked = false;
		}
		else if (obj.elements[i].type == "text") {
			obj.elements[i].value = '';
		}
		else if (obj.elements[i].type == "textarea") {
			obj.elements[i].value = '';
		}
		else if (obj.elements[i].type == "select-one") {
			obj.elements[i].selectedIndex = 0;
		}
		else if (obj.elements[i].type == "select-multiple") {
			obj.elements[i].selectedIndex = -1;
		}
	}
	return true;
}

function checkeAll(obj, name, value) {
	for(var i=0;i<obj.elements.length;i++) {
		if (obj.elements[i].name == name) {
			obj.elements[i].checked = value;
		}
	}
}
function validateFormEx(obj, list) {
	for(var i=0;i<list.length;i++) {
		var result = true;
		var n = list[i][2];
		for(var j=0;j<obj.elements.length;j++) {
			obj.elements[j].style.borderColor = '';
			obj.elements[j].style.borderStyle = '';
		}

		switch (list[i][0]) {
			case 'not-special&digit':
				if(obj.elements[n].value.match( new RegExp(/\d|!|_|\\|\+|=|@|\?|\||#|\$|%|\^|\*|;|:|<|>|\{|\}|\[|\]|\"/))) {
					result = false;
				}
				break;
			case 'radio-one':
				result = false;
				for(var k=0;k<obj.elements[n].length;k++) {
					if(obj.elements[n][k].checked) {
						result = true;
					}
				}
				if(!result) {
					obj.elements[n][0].focus();
					putAlert(list[i][1]);
					return false;
				}
				break;
			case 'checkboxes':
				var c = 0;
				for(var k=0;k<obj.elements[n].length;k++) {
					if(obj.elements[n][k].checked) { c=c+1; }
				}
				if(c<list[i][3] || c>list[i][4]) {
					putAlert(list[i][1]);
					return false;
				}
				break;
			case 'not-empty':
				var c = list[i][3] || 1;
				var temp = trim(obj.elements[n].value);
				if(temp.length < c) {
					obj.elements[n].value = temp;
					result = false;
					var o = list[i][4] || 0;
					if(o) {
						var temp2 = trim(obj.elements[o].value);
						if(temp2.length < c) obj.elements[o].value = temp2;
						else result = true;
					}
				}
				break;
			case 'not-select-if':
				var if1 = list[i][3]; //text
				var if2 = list[i][4]; //name of input
				if(if1 == obj.elements[if2].value) if(obj.elements[n].value==0) result = false;
				break;
			case 'not-select':
				if(obj.elements[n].value==0) result = false;
				break;
			case 'email':
				if(obj.elements[n].value.search(
					/^[A-Za-z0-9]+([._-][A-Za-z0-9]+)*@[A-Za-z0-9]+([._-][A-Za-z0-9]+)*\.[A-Za-z0-9]{2,6}$/) == -1)
					result = false;
				break;
			case 'compare':
				if(obj.elements[n].value!=obj.elements[list[i][3]].value) result = false;
				break;
			default:
				putAlert('Validation problem!');
				break;
		}
		if(!result) {
			obj.elements[n].style.borderColor='#FF0000';
			obj.elements[n].style.borderStyle='solid';
			obj.elements[n].focus();
			putAlert(list[i][1]);
			return false;
		}
	}
	return true;
}

function putAlert(msg) { alert(msg); }
function putConfirm(msg) { return confirm(msg); }

function checkChildBox(iparent) {
	var inputs = iparent.getElementsByTagName('input');
	for (var i=0;i<inputs.length;i++) {
		if (inputs[i].type == 'checkbox') {
			inputs[i].checked = !inputs[i].checked;
		}
	}
}

function priceChanged(button_id, obj, span_price, price, min, max) {
	var value = parseInt(obj.value);
	if (isNaN(value)) {
		obj.value = '';
		value = 0;
	}
	else {
		obj.value = value;
	}
	button = $(button_id);
	if (value < min || value > max) {
		button.disabled = true;
		button.className = 'bg-silver';
	}
	else {
		button.disabled = false;
		button.className = '';
	}
	value = value * price;
	$(span_price).innerHTML = '$'+value.toFixed(2);
}

function submitForm(objForm, hName, hValue) {
	try {
		objForm.elements[hName].value = hValue;
	} catch(e) {
		var i = document.createElement('input');
		i.type = 'hidden';
		i.name = hName;
		i.value = hValue;
		objForm.appendChild(i);
	}
	if(!objForm.onsubmit || objForm.onsubmit()) {
		objForm.submit();
	}
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

String.prototype.trim = function() {
	return trim(this);
}

String.prototype.zf = function(length) {
    var string = this.toString(10);
    return '0'.times(length - string.length) + string;
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function getChildNodes(obj) {
	var e = [];
	for(var i=0; i<obj.childNodes.length; i++){
		var c = obj.childNodes[i];
		if(c.nodeType==1) {/*TAG==1, ATTRIBUTE==2*/
			e.push(c);
		}
	}
	return e;
}
function getNextElement(obj) {
	if(obj.nextSibling.nodeType==1) return obj.nextSibling;
	else return obj.nextSibling.nextSibling;
}

function checkMaxLength(obj) {
	var maxLength = obj.getAttribute('maxlength');
	if (obj.value.length > maxLength) obj.value = obj.value.substring(0,maxLength);
}

function enableField(id, value) {
	var obj = $(id);
	if(value) obj.disabled = false;
	else obj.disabled = true;
}

var hideShowBy = 0;

function hideShowById(id, value) {
	var obj = $(id);
	if (obj.hasAttribute('style')) {
		hideShowBy = hideShowBy || obj.style.display.length;
	}
	if (hideShowBy) {
		if (value==1 || obj.style.display=='none') { obj.style.display = ''; return 1; }
		else {obj.style.display = 'none'; return 0; }
	}
	else {
		if(value==1 || obj.style.visibility=='hidden') { obj.style.visibility = 'visible'; return 1; }
		else { obj.style.visibility = 'hidden'; return 0; }
	}
}

function uploadImg(id_input) {
	var imgRe = /^.+\.(jpg|jpeg|gif|png)$/i;
	var v = $(id_input);
	if (v.disabled || v.value.search(imgRe) != -1) {
		return true;
	}
	putAlert("JPG, PNG, and GIFs only!");
	return false;
}