function _createElement(name, attributes) 
{
  var el = document.createElement( name );
  if ( typeof attributes == 'object' ) {
    for ( var i in attributes ) {
      el.setAttribute( i, attributes[i] );

      if ( i.toLowerCase() == 'class' ) {
        el.className = attributes[i];  // for IE compatibility

      } else if ( i.toLowerCase() == 'style' ) {
        el.style.cssText = attributes[i]; // for IE compatibility
      }
    }
  }
  for ( var i = 2; i<arguments.length; i++ ) {
    var val = arguments[i];
    if ( typeof val == 'string' ) { val = document.createTextNode( val ) };
    el.appendChild( val );
  }
  return el;
}

/*--------------------------------------------------------------------------------------------------------*/

function _in_array(needle, haystack, argStrict) 
{
	var found = false, key, strict = !!argStrict;
  for (key in haystack)
	{
		if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) 
		{
			found = true;
      break;
    }
	}
  return found;
} 

/*--------------------------------------------------------------------------------------------------------*/

function _trim(string)
{
	return string.replace(/(^\s+)|(\s+$)/g, "");
}

/*--------------------------------------------------------------------------------------------------------*/

function _htmlspecialchars(str) 
{
	if (typeof(str) == "string") 
	{
		str = str.replace(/&/g, "&amp;"); /* must do &amp; first */
		str = str.replace(/"/g, "&quot;");
		str = str.replace(/'/g, "&#039;");
		str = str.replace(/</g, "&lt;");
		str = str.replace(/>/g, "&gt;");
  }
	return str;
}
 
/*--------------------------------------------------------------------------------------------------------*/

function _addslashes(str)
{
	str=str.replace(/\\/g,'\\\\');
	str=str.replace(/\'/g,'\\\'');
	str=str.replace(/\"/g,'\\"');
	str=str.replace(/\0/g,'\\0');
	return str;
}

/*--------------------------------------------------------------------------------------------------------*/

function _setCookie(name, value, expires, path, domain, secure)
{
	document.cookie = name + "=" + escape(value) +
	((expires) ? "; expires=" + expires : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "");
}

/*--------------------------------------------------------------------------------------------------------*/

function _base64_encode(data)
{
	// Encodes data with MIME base64
	// +   original by: Tyler Akins (http://rumkin.com)
	// +   improved by: Bayron Guevara

	var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
	var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';

	do { // pack three octets into four hexets
		o1 = data.charCodeAt(i++);
		o2 = data.charCodeAt(i++);
		o3 = data.charCodeAt(i++);

		bits = o1<<16 | o2<<8 | o3;

		h1 = bits>>18 & 0x3f;
		h2 = bits>>12 & 0x3f;
		h3 = bits>>6 & 0x3f;
		h4 = bits & 0x3f;

		// use hexets to index into b64, and append result to encoded string
		enc += b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
	} while (i < data.length);

	switch( data.length % 3 ){
		case 1:
			enc = enc.slice(0, -2) + '==';
		break;
		case 2:
			enc = enc.slice(0, -1) + '=';
		break;
	}

	return enc;
}

/*--------------------------------------------------------------------------------------------------------*/

function _base64_decode(data)
{	
	// Decodes data encoded with MIME base64
	// +   original by: Tyler Akins (http://rumkin.com)


	var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
	var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';

	do {  // unpack four hexets into three octets using index points in b64
		h1 = b64.indexOf(data.charAt(i++));
		h2 = b64.indexOf(data.charAt(i++));
		h3 = b64.indexOf(data.charAt(i++));
		h4 = b64.indexOf(data.charAt(i++));

		bits = h1<<18 | h2<<12 | h3<<6 | h4;

		o1 = bits>>16 & 0xff;
		o2 = bits>>8 & 0xff;
		o3 = bits & 0xff;

		if (h3 == 64)	  enc += String.fromCharCode(o1);
		else if (h4 == 64) enc += String.fromCharCode(o1, o2);
		else			   enc += String.fromCharCode(o1, o2, o3);
	} while (i < data.length);

	return enc;
}

/*--------------------------------------------------------------------------------------------------------*/

function selectImage(base_url, field)
{
	try{		
	var w = window.open(base_url+'libs/js/tinybrowser/tinybrowser.php?type=image&_field='+field, 'img_select_wnd', 'left='+(screen.width-670)/2+', top='+(screen.height-490)/2+', width=670, height=490, menubar=0, toolbar=0, scrollbars=1, status=0, resizable=1');	
	}	catch(err){}
	
}

/*--------------------------------------------------------------------------------------------------------*/

function previewImage(field)
{
	try{		
		var url = document.getElementById('txt_'+field).value;
		w = window.open(url, 'img_preview_wnd');	
	}	catch(err){}
}

/*--------------------------------------------------------------------------------------------------------*/

function deleteImage(field)
{
	try{		
		document.getElementById('img_'+field).src = '';
		document.getElementById('img_'+field).style.display = 'none';
		document.getElementById('txt_'+field).value = '';
	}	catch(err){}
}

/*---------------------------------------------------------------------------*/

function selectFile(base_url, field)
{
	try{		
	var w = window.open(base_url+'libs/js/tinybrowser/tinybrowser.php?type=file&_field='+field, 'file_select_wnd', 'left='+(screen.width-670)/2+', top='+(screen.height-490)/2+', width=670, height=490, menubar=0, toolbar=0, scrollbars=1, status=0, resizable=1');	
	}	catch(err){}
		
}

/*---------------------------------------------------------------------------*/

function clearFile(field, txt)
{
	try{
		document.getElementById('hdn_'+field).value = '';
		document.getElementById('span_'+field).innerHTML = txt;
	}	catch(err){}
}

/*---------------------------------------------------------------------------*/

function _clickButton(action, inputid, formid)
{
	try{
		document.getElementById(inputid).value = action;
		document.getElementById(formid).submit();
	}	catch(err){}
}

