String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

function fieldOnFocus(elem, elemValue){
	elem.style.background='#FFFFFF';
	if(elem.value == elemValue)
		elem.value="";
}


function fieldOnBlur(elem, elemValue){
  if(elem.value=="")
		elem.value=elemValue;
}


function showTools(id){
  var edDel = $(id);
  edDel.style.visibility="visible";
}


function hideTools(id){
  var edDel = $(id);
  edDel.style.visibility="hidden";
}


function showHideName(status){
  var nickRow = $('nick_row');
  var nickValue = $('nick');
  if(status == 0){
    nickRow.style.visibility="hidden";
    nickValue.value="";
  }
  else if(status == 1){
    nickRow.style.visibility="visible";
  }
}

function parentGCatSelect(){
  var parentSelect = $("parent_g_categories");
  var childSelect = $("child_g_categories");
  clearSelect("child_g_categories");
  var catId = parentSelect.value;
  
  if(catId != null){
    for(var i=0,subCat; subCat = childCategories[i]; i++){
      if(subCat[2] == catId){
        subId = subCat[0];
        subName = subCat[1];
        var opt = document.createElement("option");
        opt.setAttribute("value",subId);
        opt.innerHTML = subName;
        childSelect.appendChild(opt);
      }
    }
  }
}

function clearSelect(selectId){
  var elSel = $(selectId);
  var i;
  for (i = elSel.length - 1; i>=0; i--) {
    elSel.remove(i);
  }
}

function checkChildCategories(){
  var parentSelect = $("parent_g_categories");
  var childSelect = $("child_g_categories");
  if(childSelect.value == null || childSelect.value == "")
    return false;
  else{
    catName = "";
    options = parentSelect.getElementsByTagName("option");
    for(var i=0,option; option = options[i]; i++ ){
      if(option.selected)
        catName += option.innerHTML;
    }
    
    options = childSelect.getElementsByTagName("option");
    for(var i=0,option; option = options[i]; i++ ){
      if(option.selected)
        catName += " > " + option.innerHTML;
    }
    $("category_id").value = childSelect.value;
    $("category_name").innerHTML = catName;
    return true;
  }
}

function showUploadFields(id){
  var field = $('file_div_'+id);
  field.style.visibility="visible";
}

function hiddeUploadFields(id){
  var field = $('file_div_'+id);
  field.style.visibility="hidden";
}

function removeDIV(id){
  var divId = 'div_'+id;
  var divToRemove = $(divId);
  divToRemove.parentNode.removeChild(divToRemove);
  return true;
}

function returnCMScategory(lang, admcat){
	var cms_category 	= $("cms_category").value;
  location.href='./index.php?lang='+lang+'&admcat='+admcat+'&cms_cat='+cms_category;
}

function return_g_Category(lang, admcat, goodsubcat, value){
//	var cms_category 	= $("cms_category").value;
  location.href='./index.php?lang='+lang+'&admcat='+admcat+'&goodsubcat='+goodsubcat+'&g_cat='+value;
}

function order_by(param){
  location.href=root+'/order_by.php?param='+param;
}

function opacity(id, opacStart, opacEnd, millisec) {
  //speed for each frame
  var speed = Math.round(millisec / 100);
  var timer = 0;

  //determine the direction for the blending, if start and end are the same nothing happens
  if(opacStart > opacEnd) {
    for(i = opacStart; i >= opacEnd; i--) {
      setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
      timer++;
    }
  }
  else if(opacStart < opacEnd) {
    for(i = opacStart; i <= opacEnd; i++){
      setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
      timer++;
    }
  }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
} 

// VALIDATION FUNCTIONS

function isFieldValid(elem){
	if(typeof(elem) != "undefined" && elem != null){
		elemMandatory = elem.getAttribute("mandatory");
		elemValType = elem.getAttribute("fieldType");
		elemParentId = elem.getAttribute("parentField");
		elemType = elem.getAttribute("type");
		
		elemValue = elem.value;
		elemValid = true;
		
		// validate checkbox seperately
		if(elemType == "checkbox"){
      checkboxChecked = elem.checked;
			if(elemMandatory != null && elemMandatory == "true"){
				if(checkboxChecked == true)
					return true;
				else
					return false;
			}
			else{
				return true;
			}
		}
		
		// if element has a parent, validate only if parent is true:
		if(elemParentId != null && elemParentId != "" && $(elemParentId) && ($(elemParentId).value == "" || $(elemParentId).value == "false" || $(elemParentId).value == 0))
			return true;
		
		if(elemMandatory != null && elemMandatory == "true"
					&& (elemValue.trim() == null || elemValue.trim() == "" || elemValue.trim().length == 0))
          elemValid = false;

		if(elemValid){
			switch(elemValType){
				case "email":
					elemValid = isValidEmail(elemValue);
				break;
				case "password":
					elemValid = isValidPassword(elemValue);
				break;
				case "password2":
					pw1id = elem.getAttribute("pw1id");
					pw1elem = $(pw1id);
					elemValid = (isValidPassword(elemValue) && elemValue == pw1elem.value);
				break;
				case "phone":
					elemValid = isValidPhoneNumber(elemValue);
				break;
        case "price":
					elemValid = isValidPrice(elemValue);
				break;
        case "freeText":
					elemValid = true;
				break;
				default:
					elemValid = true;//isTextWithSpaces(elemValue);
				break;
			}
		}
		if(elemValid == false){
			elem.style.backgroundColor = "#fcfbe8";
			elem.style.borderColor = "#FF0000";
			return false;
		}
		else{
			elem.style.backgroundColor = "#fff";
			elem.style.borderColor = "#ccc";
			return true;
		}
	}
	return false;
}
function isValidEmail(testValue) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if(reg.test(testValue) == false) {
    return false;    
  }
  return true;
}
function isValidPassword(testValue){
	if(testValue.length < 6) {
		return false;
	}
	re = /^[\wāĀēĒīĪūŪšŠģĢķĶļĻžŽčČņŅ]+$/;
	if(!re.test(testValue)) {
		return false;
	}
	return true;
}

function isValidPrice(testValue) {
	var reg = /^([0-9,.])/;
	if(reg.test(testValue) == false) {
		return false;
  }
  return true;
}

function isValidPhoneNumber(testValue){
	return true;
}

function isTextWithSpaces(testValue){
	re = /^[\w\sāĀēĒīĪūŪšŠģĢķĶļĻžŽčČņŅ]*$/;
	if(!re.test(testValue)){
		return false;
  }
	else 
		return true;
}

function validateForm(formEl){
	formValid = true;
	if(formEl){
		var inputFields = formEl.getElementsByTagName("input");
		for(var i=0,elem; elem = inputFields[i]; i++){
			if(!isFieldValid(elem))
				formValid = false;
		}
    var inputFields = formEl.getElementsByTagName("textarea");
		for(var i=0,elem; elem = inputFields[i]; i++){
			if(!isFieldValid(elem))
				formValid = false;
		}
	}
	return formValid;
}

function submitForm(formId){
	formEl = $(formId);
	if(typeof(formEl) != "undefined"){
		if(validateForm(formEl)){
      formEl.submit();
      $('submitMask').style.display = 'block';
      $('loadingMSG').style.display = 'block';
		}
		else{
      $('submitError').style.display = 'block';
		}
	}
}

function searchColor(){
  var color = $('color').value;
  var color = color.replace(/[^A-Za-z0-9]/g,'');
  location.href= root+'/lv/meklet/krasa/'+color;
}

function searchPrice(){
  var minPrice = $('valueA').value;
  var maxPrice = $('valueB').value;
  
  location.href= root+'/lv/meklet/cena/'+minPrice+'/'+maxPrice;
}
//////////// TUR ZEMĀK ir kkāds ERROR Ramazotī ////////////////
/*
function deletePicture(){
	do_async = false;
  picId = ;
  var param_url = '&function=delPic&picId=' + picId;

  var req = new XMLHttpRequest();
  if (req) {
    req.open('POST', 'xmlhttp.php', do_async);
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req.send(param_url);
    if(req.responseText == "ok"){
    	return true;
    }
  }
}*/