
function _e(id)
{
  return document.getElementById(id);
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return {'left':curleft,'top':curtop};
}

function popupImage(largeImageId,imgRef)
{
  var largeImagePath = imgRef.src.replace("-small","");

  _e("captures_popup").style.display = "block";
  _e(largeImageId).src = largeImagePath;

  _e(largeImageId).onload = function()
  {
    this.style.left = (_e("captures_popup").offsetWidth - 40 - this.offsetWidth)/2 + "px";
  }

  _e(largeImageId).onclick = function()
  {
    this.src = "";
    _e("captures_popup").style.display = "none";
  }
}

function printf() {
  var num = arguments.length;
  var oStr = arguments[0];
  for (var i = 1; i < num; i++) {
    var pattern = "\\{" + (i-1) + "\\}";
    var re = new RegExp(pattern, "g");
    oStr = oStr.replace(re, arguments[i]);
  }
  return oStr;
}

function submit_form(frm,frmObj)
{
 	var isValid = true;
  	var regEmail = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
  	var err = "";

  	for(var i in frmObj)
  	{
		if(frm[i] != null)
		{
 
			var elem_value = null;
			switch(frm.elements[i].type)
			{
				case 'select-one':
					elem_value = frm.elements[i].options[frm.elements[i].selectedIndex].value;
					break;
				default:
					elem_value = frm.elements[i].value;
					break;
			}
			//console.log(i);
			switch(frmObj[i][1]) // type
			{
				case 'email':
					if (!elem_value.match(regEmail)) {
						isValid = false;
						err += printf(Msg['must_be_valid_email'] + ".\n",frmObj[i][0]);
					}
					break;
				case 'text':
					// set null for not empty text field
					if (frmObj[i][2] == null && !elem_value.toString().length)
					{
						isValid = false;
						err += printf(Msg['cannot_be_empty'] + ".\n",frmObj[i][0]);
					}
					else if (!isNaN(frmObj[i][2]) && elem_value.toString().length < frmObj[i][2])
					{
						isValid = false;
						err += printf(Msg['at_least_n_chars_long'] + ".\n",frmObj[i][0],frmObj[i][2]);
					}
					break;
				case 'numeric':
					if(isNaN(parseInt(elem_value) || parseFloat(elem_value)))
					{
						isValid = false;
						err += printf(Msg['must_be_numeric'] + ".\n",frmObj[i][0]);
					}
					break;
				case 'checkbox':
					var minLength = parseInt(frmObj[i][2]);				
					var elem_value = frm.elements[i];
					
					if(minLength)
					{
						var len = 0;
						for(j = 0; j < elem_value.length; j++)
						{
							if(elem_value[j].checked)	len++;
						}
						
						if(len < minLength)
						{
							isValid = false;
							err += printf(Msg['select_min_n_options'] + ".\n",frmObj[i][0],frmObj[i][2]);
						}
					}
					break;	
				default:
					break;
			}
		}
	}
	
 	
	if(!isValid)
  	{
    	alert(err);
	}

	return isValid;
	
}

function addRemoveItem(colectorVar,chkbox, max_choices)
{
	var countries = new Array();
	if(colectorVar.value.length)
	{
		countries = colectorVar.value.split(",");
	}
	
	if(chkbox.checked ==  false)
	{
		// add country id
		for(i = 0; i < countries.length; i++)
		{
			if(countries[i] == chkbox.value)
			{
				countries.splice(i,1);
			}
		}
		
		s_countries = countries.join(',');
	}
	else
	{
		if(countries.length < max_choices)
		{
			countries.push(chkbox.value);
			s_countries = countries.join(',');
		}
		else
		{
			alert("You can add maximum " + max_choices + " countries.");
			chkbox.checked = false;
			s_countries = colectorVar.value;
		}
	}

	colectorVar.value = s_countries;
	return s_countries;	
}

function createOption(v,t)
{
	var opt = document.createElement('OPTION');
	opt.value = v;
	opt.text = t;
	return opt;
}

function addOptions(selectRef,json,startIndex)
{
	try
	{
		for(i = 0; i < json.length; i++)
		{
			var j = startIndex + i;
			var opt = createOption(json[i]["value"],json[i]["text"]);
			selectRef.options.add(opt,j);
			//alert(json[i]["value"]);
		}
	}
	catch(e)
	{}
}

function clearSelect(selectRef)
{
	selectRef.options.length = 0;
}

function numeric(s)
{
	var ns = '';
	
	for(i in s)
	{
		if(!isNaN(i))
		{
			ns += i;
		}
	}
	
	return ns;
}

function toInteger(e)
{
  	if(!e)
    	var e = window.event;
  
  	var k = e.keyCode;

	var c = (k == 8) || (k == 9) || (k == 13) || (k == 27) || (k == 46) || (k >= 48 && k <= 57) || (k >= 96 && k <= 105);

	if(!c) return false;
	  
}

function getRadioGroupValue(rObj)
{
	for (var i=0; i<rObj.length; i++) if (rObj[i].checked) return rObj[i].value;
    return false;
}

function gotoPage(url)
{
	document.location.href = url;
}

function changeLanguage(selRef)
{
	if(selRef.options[selRef.selectedIndex].value != "")
	{
		selRef.form.submit();
	}
}

function swapImage(destImgId,path)
{
	document.getElementById(destImgId).src = path;
}

function showLargeImage(suffix,src)
{
	var div = document.getElementById('div' + suffix);
	var img = document.getElementById('img' + suffix);

	div.style.visibility = 'visible';
	img.src = src;
}

function changeCB(cb,values)
{
	for(i = 0; i < values.length; i++)
	{
		values[i].checked = cb.checked;
	}
}
//*
function toggleVisible(elemId)
{
	var el = _e(elemId);
	
	if(el.className == "hidden")
	{
		el.className = "";
	}
	else
	{
		el.className = "hidden";
	}
	
	if(el.style.display == "block")
	{
		el.style.display = "none";
	}
	else
	{
		el.style.display = "block";
	}
}
//*/
function showSearchPage(pi,frmName)
{
	frm = document.forms[frmName];
	frm.pi.value = pi;
	frm.submit();
}

//alert("Loaded");