function rswp_set_option(option,def)
{
	if(def && document.adminForm.boxchecked.value == 0) { alert('Please select an option first'); return false } 
	document.adminForm.option.value = option;
	rswp_submitform();
}

function rswp_submitform()
{
	document.adminForm.submit();
}

function createFilter(filter)
{
	document.getElementById('filter').value = filter;
	rswp_submitform();
}

function eraseFilter()
{
	document.getElementById('filter').value = '';
	rswp_submitform();
}

function rswp_checkAll( n ) {
	var f = document.adminForm;
	var c = f.toggle.checked;
	var n2 = 0;
	for (i=0; i < n; i++) {
		cb = eval( 'f.cb' + i );
		if (cb) {
			cb.checked = c;
			n2++;
		}
	}
	if (c) {
		document.adminForm.boxchecked.value = n2;
	} else {
		document.adminForm.boxchecked.value = 0;
	}
}

function rswp_isChecked(option){
	if (option == true){
		document.adminForm.boxchecked.value++;
	}
	else {
		document.adminForm.boxchecked.value--;
	}
}

function rswp_publish(id,task)
{
	if(id)   document.adminForm.option.value = task;
	if(task) document.adminForm.generalid.value = id;
	rswp_submitform();
}

function rse_changeLayout(value)
{
	if (value == 0 ) return;
		else if (value == 1)
			document.getElementById('layoutArea').value = '<div style="overflow: hidden">\n{EventIcon}<a href="{EventLink}"><strong>{EventName}</strong></a><br/>\n{EventSubtitle}\n<p>{EventDescription}</p>\nAt <em>{LocationName}</em> from {EventStartDate} to {EventEndDate} - Hosted by {EventHost} - {CategoryName} - <a href="{EventLink}">Details</a></div>\n<hr/>';
		else if (value == 2)
			document.getElementById('layoutArea').value = '<tr>\n\t<td>{EventStartDate} - {EventEndDate}</td>\n\t<td><a href="{EventLink}">{EventName}</a></td>\n\t<td><a href="{LocationLink}">{LocationName}</a></td>\n\t<td>{CategoryName}</td>\n</tr>';
}

function rse_accept(id)
{
	document.adminForm.option.value = 'accept';
	document.adminForm.idsubscriber.value = id;
	rswp_submitform();
	
}

function rse_pending(id)
{
	document.adminForm.option.value = 'pending';
	document.adminForm.idsubscriber.value = id;
	rswp_submitform();
	
}

function rse_denied(id)
{
	document.adminForm.option.value = 'denied';
	document.adminForm.idsubscriber.value = id;
	rswp_submitform();
	
}

function rse_delete(id)
{
	document.adminForm.option.value = 'delete';
	document.adminForm.idsubscriber.value = id;
	rswp_submitform();
	
}

var rse_t;
var rse_old_value;

function rse_stop_search_locations()
{
	clearTimeout(rse_t);
}

function rse_search_locations(root,string)
{
	if (string == rse_old_value) return;
	rse_t = setTimeout( function() {
		selbox = document.getElementById('rse_locations');
		var url = root + '/rsevents/data/tmpl.php?task=searchlocations';
		var params = 'string='+ string +'&randomTime='+Math.random();
		xml=buildXmlHttp();

		xml.open('POST',url,true);
		

		xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xml.setRequestHeader("Content-length", params.length);
		xml.setRequestHeader("Connection", "close");
		
		xml.onreadystatechange=function()
		{
			if(xml.readyState==4)
			{		
				document.getElementById('rse_hideme').style.display = 'none';
				selbox.innerHTML  = xml.responseText;
			}
		}
		xml.send(params);
		rse_old_value = string;
		document.getElementById('rse_hideme').style.display = '';
	}, 1000);
}


function rse_import_contacts()
{
	str = '';
	checks = document.getElementsByName('importedContacts[]');
	for(i=0;i<checks.length;i++)
	{
		if(checks[i].checked == true)
		{
			str += checks[i].value + "\n";
		}
	}
	document.getElementById('rsevents-emails').value = str;
}

function rsevents_invite_validation()
{
	var form = document.adminForm;
	var ret = true;
	
	if(form.emails.value=='') { form.emails.className += ' rswpError'; ret=false; } else { form.emails.className = ' rsevents-message';  }	
	
	return ret;
}

function rsevents_import_validation(root)
{
	var form = document.adminForm;
	var ret = true;
	var type = 'importyahoo';
	
	if(form.username.value=='') { form.username.className += ' rswpError'; ret=false; } else { form.username.className = ' rsevents-message';  }	
	if(form.password.value=='') { form.password.className += ' rswpError'; ret=false; } else { form.password.className = ' rsevents-message';  }	
	
	if(document.getElementById('typename').value == 'gmail')
	{
		type = 'importgmail';
	}else{
		type = 'importyahoo';
	}
	
	username = document.getElementById('username').value;
	password = document.getElementById('password').value;
	string = base64_encode(username+'+'+password);
	
	if(ret == true) 
	{
		var url = root + '/rsevents/data/raw.php?task='+ type;
		var params = 'string='+string+'&randomTime='+Math.random();
		xml=buildXmlHttp();

		xml.open('POST',url,true);
		

		xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xml.setRequestHeader("Content-length", params.length);
		xml.setRequestHeader("Connection", "close");
		
		xml.onreadystatechange=function()
		{
			if(xml.readyState==4)
			{		
				document.getElementById('rse_importers').innerHTML = xml.responseText;
			}
		}
		xml.send(params);		
	}
	
	return ret;
}

function rsevents_send_validation()
{
	var form = document.adminForm;
	var ret = true;
	
	if(form.subject.value=='') { form.subject.className += ' rswpError'; ret=false; } else { form.subject.className = ' rsevents-message';  }	
	
	return ret;
}

function rse_change_carrier(carrier)
{
	if (carrier == 'gmail')
	{
		document.getElementById('rsevents-carrier').innerHTML = '@gmail.com';
		document.getElementById('typename').value = 'gmail';
		document.getElementById('option').value = 'importgmail';
	}
	if (carrier == 'yahoo')
	{
		document.getElementById('rsevents-carrier').innerHTML = '@yahoo.com';
		document.getElementById('typename').value = 'yahoo';
		document.getElementById('option').value = 'importyahoo';
	}
	
}

function base64_encode (data) {
        
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc="", tmp_arr = [];

    if (!data) {
        return data;
    }

    data = this.utf8_encode(data+'');
    
    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
        tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);
    
    enc = tmp_arr.join('');
    
    switch (data.length % 3) {
        case 1:
            enc = enc.slice(0, -2) + '==';
        break;
        case 2:
            enc = enc.slice(0, -1) + '=';
        break;
    }

    return enc;
}

function utf8_encode ( argString ) {
    var string = (argString+''); // .replace(/\r\n/g, "\n").replace(/\r/g, "\n");

    var utftext = "";
    var start, end;
    var stringl = 0;

    start = end = 0;
    stringl = string.length;
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;

        if (c1 < 128) {
            end++;
        } else if (c1 > 127 && c1 < 2048) {
            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc !== null) {
            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
    }

    if (end > start) {
        utftext += string.substring(start, string.length);
    }

    return utftext;
}

function rse_change_ticket(IdTicket)
	{
		var selbox = document.getElementById('IdTicket');
		//first lets hide all the ticket descriptions
		for(i =0;i<selbox.options.length;i++)
		{
			document.getElementById('rsevents_ticket_' + selbox.options[i].value).style.display='none';
		}
		document.getElementById('rsevents_ticket_' + IdTicket).style.display='inline';
	}
	
function rse_hidePayment(root,id)
{
	
	selbox = document.getElementById('rse_numtickets');

	xml2=buildXmlHttp();
	xml2.onreadystatechange=function()
    {
		if(xml2.readyState==4)
		{
			txt = xml2.responseText;
			txt = txt.split("\n");
			ticketPrice = txt[1];
			maxTickets = txt[2];
			
			
			if(ticketPrice == '0') 
			{	
				document.getElementById('rse_hidePayment').style.display = 'none' ;
				selbox.options.length = 0;
				for(i=1;i<=maxTickets;i++)
					selbox.options[i-1] = new Option(i,i);
			}
			else 
			{
				document.getElementById('rse_hidePayment').style.display = '' ;
				document.getElementById('numtick').style.display = '' ;
			
				selbox.options.length = 0;
				for(i=1;i<=maxTickets;i++)
					selbox.options[i-1] = new Option(i,i);
			}
		}
    }
	xml2.open('GET', root+'/rsevents/data/raw.php?&task=checkvalue&id='+id+'&randomTime='+Math.random(),true);
	xml2.send(null);
}

function rse_get_payment()
{
	var payments = document.getElementsByName('payment');
	var checkedpayment = '';
	for (var i=0;i<payments.length;i++)
		if (payments[i].checked)
			checkedpayment = payments[i].value;
	return checkedpayment;
}

function rse_refresh_locations(root,selectId)
{
	selbox = document.getElementById(selectId);
	selbox.length = 1;
	var url = '/rsevents/data/raw.php?task=refreshlocations';
	var params = 'randomTime='+Math.random();
	xml=buildXmlHttp();

	xml.open('POST',root + url,true);
	

	xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xml.setRequestHeader("Content-length", params.length);
	xml.setRequestHeader("Connection", "close");
	
	xml.onreadystatechange=function()
    {
		if(xml.readyState==4)
		{
			lines = xml.responseText;
			lines = ltrim(lines);
			lines = lines.split("\n");
			for(i=0;i<lines.length;i++)
			{
				row = lines[i].split('|');
				if(typeof(row[1]) == 'undefined') break;
				selbox.options[i+1] = new Option(row[1],row[0]);
				
			}
		}
    }
	xml.send(params);
}

function ltrim(str) { 
	for(var k = 0; k < str.length && isWhitespace(str.charAt(k)); k++);
	return str.substring(k, str.length);
}
function isWhitespace(charToCheck) {
	var whitespaceChars = " \t\n\r\f";
	return (whitespaceChars.indexOf(charToCheck) != -1);
}

function rse_calendar_change_month(address)
{
	xml=buildXmlHttp();
	xml.onreadystatechange=function()
    {
		if(xml.readyState==4)
		{
			document.getElementById('rsevents_calendar_module').innerHTML = xml.responseText;
		}
    }
	xml.open('GET',address, true);
	xml.send(null);
}

function buildXmlHttp()
{
	var xmlHttp;
	try
	{
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	return xmlHttp;
}
