/******************************************
|   Common Javascript Functions for TopShare template
|   ========================================
|   by Spenki
|   (c) 2011 Spenki
|   http://www.topshare.it
|   ========================================
******************************************/
/******************************************
* RegisterNow()
* redirect users to register page.
******************************************/
function RegisterNow()
{
    var ok = confirm(NeedRegister);
    if(ok==1) document.location = "register.php";
}
/******************************************
* AjaxSubmit(formname,holder)
* submi the form with the 'formname',
* if holder is specifed, show the content in holder
* @param string
* @param string
******************************************/
function AjaxSubmit(formname,holder)
{
    var url = $('#'+formname).attr('action');
    var httpmethod = $('#'+formname).attr('method');

    var Param = $('#'+formname).serialize();//Form.serialize(formname);

    var success	= function(t){submitComplete(t, formname);}
    var failure	= function(t){submitFailed(t, formname);}

    $.ajax({
    type: httpmethod,
    url: url,
    data: Param,
    success: success,
    error: failure
    });
}
/******************************************
* is_object(id)
* check if the object with the 'id' exists
* @param string
* @return bool
******************************************/
function is_object(id)
{
    return document.getElementById(id) != null;
}
/******************************************
* in_array(name,arr)
* check name exists in array 'arr'
* @param string
* @param array
* @return bool
******************************************/
function in_array(name,arr)
{
   name=name.toLowerCase();
   var last=name.lastIndexOf('.');
   var ok=0;
   if(last!=-1)
   {
      var ext=name.substring(last+1);
      if(ext!='')
      {
          var exts=arr.split(',');
          for(var i=0;i<exts.length;i++)
          {
              if(exts[i]==ext) return 1;
          }
      }
      else
      {
          return 0;
      }
   }
   else
   {
       return 0;
   }
   return 0;
}
/**
* Emulates unhtmlspecialchars in vBulletin
*
* @param	string	String to process
*
* @return	string
*/
function unhtmlspecialchars(str)
{
	f = new Array(/&lt;/g, /&gt;/g, /&quot;/g, /&amp;/g);
	r = new Array('<', '>', '"', '&');

	for (var i in f)
	{
		str = str.replace(f[i], r[i]);
	}

	return str;
}

/**
* Emulates PHP's htmlspecialchars()
*
* @param	string	String to process
*
* @return	string
*/
function htmlspecialchars(str)
{
	//var f = new Array(/&(?!#[0-9]+;)/g, /</g, />/g, /"/g);
	var f = new Array(
		(is_mac && is_ie ? new RegExp('&', 'g') : new RegExp('&(?!#[0-9]+;)', 'g')),
		new RegExp('<', 'g'),
		new RegExp('>', 'g'),
		new RegExp('"', 'g')
	);
	var r = new Array(
		'&amp;',
		'&lt;',
		'&gt;',
		'&quot;'
	);

	for (var i = 0; i < f.length; i++)
	{
		str = str.replace(f[i], r[i]);
	}

	return str;
}
function myOpenWindow(link,width,height)
{
    if(width==0) width=500;
    if(height==0) height=300;
    var tmp = document.createElement("DIV");
    tmp.innerHTML = link.innerHTML;
    var wintitle = tmp.textContent||tmp.innerText||$(link).attr('title');
    var folderswindow=dhtmlmodal.open('mywindow', 'iframe', link.href+'&inline=1', wintitle, 'width='+width+'px,height='+height+'px,fullscreen=1,center=1,resize=1,scrolling=0');
    return false;
}
function ClipBoard(id)
{
	var ccc = MM_findObj(id);
    if (document.all){
	ccc.value = ccc.innerText;
	Copied = ccc.createTextRange();
	Copied.execCommand("Copy");
    alert("URL copiato!");
    }
    else
    {
        alert('Chiudi questa finestra e premi \'CTL-c\' per copiare');
        ccc.focus();
        ccc.select();
    }
}
function MM_findObj(n, d) { //v4.01
    var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function highlight(id) {
    var field = MM_findObj(id);
	field.focus();
  	field.select();
}
function toggle(el) {
    $('#'+el).toggle();
}
function checkAll()
{
    for (var i=0;i<document.myform.elements.length;i++)
    {
       var e = document.myform.elements[i];
       if (e.type == 'checkbox' && e.name != 'allbox'&& !e.disabled)
       e.checked = document.myform.allbox.checked;
    }
}
function opConfirm(text, conf)
{
    for (var i=0;i<document.myform.elements.length;i++)
    {
       var e = document.myform.elements[i];
       if (e.type == 'checkbox' && e.name != 'allbox' && e.checked == 1 ) {
          if (conf) {
             return confirm(text);
          } else {
             return 1;
          }
       }
    }
    return false;
}
var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i

function checkmail(e){
    var returnval=emailfilter.test(e)
    return returnval;
}
function getexpirydate( nodays){
    var UTCstring;
    Today = new Date();
    nomilli=Date.parse(Today);
    Today.setTime(nomilli+nodays*24*60*60*1000);
    UTCstring = Today.toUTCString();
    return UTCstring;
}
function getcookie(cookiename) {
    var cookiestring=""+document.cookie;
    var index1=cookiestring.indexOf(cookiename);
    if (index1==-1 || cookiename=="") return "";
    var index2=cookiestring.indexOf(';',index1);
    if (index2==-1) index2=cookiestring.length;
    return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}
function setcookie(name,value)
{
    duration=30;

    cookiestring=name+"="+escape(value)+";EXPIRES="+getexpirydate(duration);
    document.cookie=cookiestring;
}
function delcookie(name)
{
    cookiestring=name+"="+escape('')+";EXPIRES="+getexpirydate(-1);
    document.cookie=cookiestring;
}
function flashObj(flashName) {
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    //return (isIE) ? window[flashName] : document[flashName];
    return document[flashName];
}
function copyLinks(param)
{                                       
    txtToCopy = document.getElementById('copyurl_'+param).value;
    flashObj('clipboard'+param).SetVariable('txtToCopy',txtToCopy);
    if(document.getElementById('copyinfo_'+param)!=null) document.getElementById('copyinfo_'+param).innerHTML = 'Copied';
    else alert('Copiato!');    
    return false;
}
function buildLinkCodes(codeid)
{
    var codes = document.getElementsByTagName('textarea');
    var codesnum = codes.length;

    var colspanobj = document.getElementById('colspan');
    var colspan    = colspanobj.options[colspanobj.selectedIndex].value;
    var linebreak  = document.getElementById('colseparator').checked?"<br />":"\n";

    var linkcodes = '';
    var j=0;
    for(var i=0; i<codesnum; i++)
    {
        var codeelem = codes[i];
        var parts = codeelem.id.split('_');
        if('copyurl_'+codeid==parts[0]+'_'+parts[1])
        {
            j++;
            linkcodes = linkcodes + (codeelem.value) + (j%colspan==0?linebreak:" ");
        }
    }
    linkcodes = linkcodes.substring(0,linkcodes.length-linebreak.length);
    document.getElementById('copyurl_all').value = linkcodes;
}
/***********************************************
* Bookmark site script- ? Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/
/* Modified to support Opera */
function bookmarksite(title,url){
if (window.sidebar) // firefox
	window.sidebar.addPanel(title, url, "");
else if(window.opera && window.print){ // opera
	var elem = document.createElement('a');
	elem.setAttribute('href',url);
	elem.setAttribute('title',title);
	elem.setAttribute('rel','sidebar');
	elem.click();
}
else if(document.all)// ie
	window.external.AddFavorite(url, title);
}
/******************************************
* Edit in place
******************************************/
var ClickEditTip = typeof ClickEditTip == 'undefined' || ClickEditTip=='' ? 'Click here to edit!' : ClickEditTip;
var overlaywindow = false;
function populateValue(act,id,formname,hasval)
{
    overlay($('#'+act+'_'+id), formname+'_div')

    $('#'+formname+' input[name=id]').val(id);
    $('#'+formname+' input[name=act]').val(act);

    $('#'+formname+' textarea[name=edits]').val( hasval==0 ? '' : unhtmlspecialchars($('#'+act+'_'+id).html()) );
}
function clickEditValue(act,id,formname)
{
    var hasval = $('#'+act+'_'+id).html()!='';  
    if(hasval==false)
    {
        $('#'+act+'_'+id).html(ClickEditTip);
    }

    $('#'+act+'_'+id).addClass('editable');

    $('#'+act+'_'+id).click( function(e){ return populateValue(act,id,formname,hasval)} );
    $('#'+act+'_'+id).mouseover( function(){ $(this).removeClass('editable')} );
	$('#'+act+'_'+id).mouseout( function(){ $(this).addClass('editable')} );
}
function clickEditValues()
{
    for (var i=2; i<arguments.length; i++)
    {
        clickEditValue(arguments[i],arguments[0],arguments[1])
    }
}
function submitComplete(res, formname)
{
    var act = $('#'+formname+' input[name=act]').val();
    var id = $('#'+formname+' input[name=id]').val();
    $('#'+act+'_'+id).html( res.responseText=='' ? ClickEditTip : res );
    overlayclose(formname+'_div');
    return false;
}
function submitFailed(res, obj)
{
	alert('Spiacenti, aggiornamento non riuscito.');
}
/**
* restore the HTML content of subobjstr after closing window!
*/
function overlay(curobj, subobjstr, windowstr){
    var tmp = document.createElement("DIV");
    tmp.innerHTML = curobj.innerHTML;

    if(!overlaywindow||overlaywindow&&overlaywindow.isClosed)
    overlaywindow = dhtmlmodal.open('overlaywindow', 'div', subobjstr, $(curobj).attr('title')||tmp.textContent||tmp.innerText, windowstr&&windowstr.indexOf('=')>=0 ? windowstr : 'width=500px,height=250px,center=1,resize=1,scrolling=0')
    else overlaywindow.show();
    overlaywindow.onclose=function(){
       document.getElementById(subobjstr).innerHTML = document.getElementById(subobjstr).defaultHTML;

       return true;
    }
    return false
}
function overlayclose(subobj)
{
    overlaywindow.close();
}

