function Element(element_id){
	return document.getElementById(element_id);
}

function checkKeyPressed(evt, func, params)
{
  evt = (evt) ? evt : (window.event) ? event : null;
  if (evt)
  {
    var charCode = (evt.charCode) ? evt.charCode :
                   ((evt.keyCode) ? evt.keyCode :
                   ((evt.which) ? evt.which : 0));
    if (charCode == 13) func(params);
  }    
}

////////

function removeSpaces(string) {
	var tstring = "";
	string = '' + string;
	splitstring = string.split(" ");
	for(i = 0; i < splitstring.length; i++)
	tstring += splitstring[i];
	return tstring;
}

////////////////////////////////////////////////////////////

function set_selectBox_value(box_id, value){
	var box = Element(box_id);
	var len = box.options.length;
	
	for(var i=0; i<len; i++){
		if(box.options[i].value==value){
			box.options[i].selected = true;
		}
	}
}//end function set_selectBox_value()

///////////////////////////////


function isArray(obj) {
   if(!obj)	
	  return false;
	  
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}


function in_array(needle, haystack, strict) {
	/*
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: true
 	*/
    var found = false, key, strict = !!strict;
 
    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            found = true;
            break;
        }
    }
 
    return found;
}//end function in_array()

/**
* email kontrol eder. doğru bir girişse true, yanlışsa false döner
*/

function isValidEmail(emailAdayi){
	
	var reg_email = /^[a-zA-Z0-9]+[_a-zA-Z0-9-]*(\.[_a-z0-9-]+)*@.+\..+$/;
	
	if(emailAdayi.value == ''){
		return false;
	}
	
	if(!reg_email.test(emailAdayi)){
		return false;
	}
	
	if(emailAdayi.charAt(emailAdayi.length-1)=='.'){
		return false;
	}
	
	return true;
}//

/**
* bir stringin bir string parçacığını barındırıp barındırmadığını kontrol eder
* @PARAMS;
* needle :  aranacak olan string
* haystack : içerisinde arama yapılacak olan string
* @RETURN;
* varsa boolean true, yoksa false döner
*/
function str_contains(needle, haystack){
	if(haystack.indexOf(needle) == -1) return false;
	else return true;
}//end function str_contains()

/** bir stringin, bir dizi içerisindeki bütün string parçalarını barındırıp barındırmadığını kontrol eder
* @PARAMS;
* needleArray : içerisindeki string parçaları aranacak olan array
* haystack : içerisinde aram yapılacak olan string
*
* @RETURN;
*  needleArray bir dizi değilse 1 döner.
*  needleArray'in eleman sayısı 0 ise 2 döner
*  needleArray içindeki parçalardan biri yoksa boolean false, hepsi varsa true döner
*/

function str_containsAll(needleArray, haystack){
	if(!isArray(needleArray)) return 1;
	
	var arrLen = needleArray.length;
	if(arrLen == 0) return 2;
	
	var i=0;
	
	for(i=0; i<arrLen; i++){
		if(haystack.indexOf(needleArray[i]) == -1) return false;
	}//end for
	
	return true;
}//end function str_containsAll()

/**
* bir dizinin içindeki herhangi bir elemanın bir stringde geçip geçmediğini kontrol eder
* @PARAMS;
* needleArray : içerisindeki string parçaları aranacak olan array
* haystack : içerisinde aram yapılacak olan string
*
* @RETURN;
*  needleArray bir dizi değilse 1 döner.
*  needleArray'in eleman sayısı 0 ise 2 döner
*  needleArray içindeki parçalardan herhangi biri varsa boolean false, hiçbiri yoksa true döner
*/

function str_containsNone(needleArray, haystack){
	if(!isArray(needleArray)) return 1;
	
	var arrLen = needleArray.length;
	if(arrLen == 0) return 2;
	
	var i=0;
	
	for(i=0; i<arrLen; i++){
		if(haystack.indexOf(needleArray[i]) != -1) return false;
	}//end for
	
	return true;
}//end function str_containsNone()


/**
*
* Javascript trim, ltrim, rtrim
* http://www.webtoolkit.info/
*
*
**/

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

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 resetForm(form_id, FieldValues){
	
	var form = document.getElementById(form_id);
	var len = form.length;
	var i=0;
	
	for(i=0; i<len; i++){
		if(form[i].type != 'submit'){
			form[i].value = '';
		}
	}
	
	if(isArray(FieldValues)){
		for(index in FieldValues){
			Element(index).value = FieldValues[index];
		}
	}
}

/**
form elemanlarını disabled yapar
*/
function disableForm(form_id){
	var form = document.getElementById(form_id);
	var i=0;
	
	for(i = 0; i<form.length; i++){
		
		form[i].disabled = true;
	}
}//end function disableForm()

/**
form elemanlarını enabled yapar
*/
function enableForm(form_id){
	var form = document.getElementById(form_id);
	var i=0;
	
	for(i = 0; i<form.length; i++){
		
		form[i].disabled = false;
	}
}//end function enableForm()





/** form doğrulama fonksiyonları  **/
function box_isEmpty(box_id,message){
	var box = document.getElementById(box_id);
	if(trim(box.value) == ''){
		alert(message);
		box.focus();
		return true;
	}
	
	return false;
}//end function box_isEmpty();

function box_isNumeric(box_id,message_ifempty,message_ifnotnumeric){
	var box = document.getElementById(box_id);
	
	if(box.value == ''){
		alert(message_ifempty);
		box.focus();
		return false;
	}
	
	if(box.value.replace(/0/g,'') != parseInt(box.value.replace(/0/g,''))){
		alert(message_ifnotnumeric);
		box.focus();
		return false;
	}
	
	return true;
}//end function box_isNumeric();

function box_isNumericIdentity(box_id,message, defaultLength, defaultLength_message){
	var box = document.getElementById(box_id);
	
	if(box.value.replace(/0/g,'') != parseInt(box.value.replace(/0/g,''))){
		alert(message);
		box.focus();
		return false;
	}
	
	if(defaultLength){
		if(trim(box.value).length != defaultLength){
			alert(defaultLength_message);
			box.focus();
			return false;
		}
	}
	
	return true;
}//end function box_isNumericIdentity()


function box_isValidPassword(passBox_id, passRepeatBox_id, message_1, message_2){
	var box1 = document.getElementById(passBox_id);
	
	if(trim(box1.value) == ''){
		alert(message_1);
		box1.focus();
		return false;
	}
	
	if(box1.value != document.getElementById(passRepeatBox_id).value){
		alert(message_2);
		document.getElementById(passRepeatBox_id).focus();
		return false;
	}
	
	return true;
}//end function box_isValidPassword()


function box_isEmail(box_id, message){
	var box = document.getElementById(box_id);
	
	if(!isValidEmail(box.value)){
		alert(message);
		box.focus();
		return false;
	}
	
	return true;
}//end function box_isEmail();

function box_isMoney(box_id, message){
	var box = document.getElementById(box_id);
	
	if(box.value != parseFloat(box.value)){
		alert(message);
		box.focus();
		return false;
	}
	
	return true;
}//end function box_isMoney()

/////////////////////////////////////////
function display_loading(){
	document.getElementById('__loading_div').style.display='block';
}//

function close_loading(){
	document.getElementById('__loading_div').style.display='none';
}


function display_floatingMessage(message){
	Element('floatingMessage_box_central_message').innerHTML = message;
	$('#floatingMessage_box').show('slow');
}//end function display_floatingMessage()

function close_floatingMessage(){
	$('#floatingMessage_box').hide('slow');
}
//////////////////////////////////////

function span_toEditableBox(fields){
	if(!isArray(fields)){
		fields = new Array(fields);
	}
	
	var parent;
	var span;
	var inputBox;
	
	for(index in fields){
		an_id = fields[index];
		
		span = Element(an_id);
		parent = span.parentNode;
		
		if(an_id == 'adres'){
			inputBox = document.createElement('textarea');
		}
		else{
			inputBox = document.createElement('input');
		}
			
		inputBox.value = span.innerHTML;
		
		parent.removeChild(span);
		inputBox.id = an_id;
		inputBox.name = an_id;
		
		parent.appendChild(inputBox);
	}
}//end function span_toEditableBox()

function editableBox_toSpan(fields){
	if(!isArray(fields)){
		fields = new Array(fields);
	}
	
	var parent;
	var span;
	var inputBox;
	
	for(index in fields){
		an_id = fields[index];
		
		inputBox = Element(an_id);
		parent = inputBox.parentNode;
		
		span = document.createElement('span');
		span.innerHTML = inputBox.value;
		
		parent.removeChild(inputBox);
		span.id = an_id;
		span.name = an_id;
		
		parent.appendChild(span);
	}
}//end function editableBox_toSpan()
