﻿/*****************************************************************\
|*  In the name of Allah, The Most Gracious, The Most Merciful   *|
|*****************************************************************|
|*          ####  #     ####  ####  ####  ####  ####             *|
|*          #  #  #     #     #  #  #  #  #  #  #                *|
|*          ####  #     ###   ####  ####  #  #  ####             *|
|*          #  #  #     #     #     #     #  #     #             *|
|*    www.  #  #  ####  ####  #     #     ####  ####  .net       *|
|*****************************************************************|
|*  aleppos version 1.0.0
|*****************************************************************|
|* Copyright ©2005–2006 Aleppos Network Ltd. All Rights Reserved *|
|*This file may not be redistributed in whole or significant part*|
|* http://www.aleppos.net           ALEPPOS IS NOT FREE SOFTWARE *|
\*****************************************************************/


var userAgent = navigator.userAgent.toLowerCase();
var is_opera  = (userAgent.indexOf('opera') != -1);
var is_saf    = ((userAgent.indexOf('applewebkit') != -1) || (navigator.vendor == 'Apple Computer, Inc.'));
var is_webtv  = (userAgent.indexOf('webtv') != -1);
var is_ie     = ((userAgent.indexOf('msie') != -1) && (!is_opera) && (!is_saf) && (!is_webtv));
var is_ie4    = ((is_ie) && (userAgent.indexOf('msie 4.') != -1));
var is_moz    = ((navigator.product == 'Gecko') && (!is_saf));
var is_kon    = (userAgent.indexOf('konqueror') != -1);
var is_ns     = ((userAgent.indexOf('compatible') == -1) && (userAgent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_saf));
var is_ns4    = ((is_ns) && (parseInt(navigator.appVersion) == 4));
var is_mac    = (userAgent.indexOf('mac') != -1);

function checkEnter(e, formobj)
{ //e is event object passed from function invocation

	while (formobj.tagName != 'FORM')
	{
		if (formobj.parentNode.tagName == 'HTML')
		{
			break;
		}
		else
		{			
			formobj = formobj.parentNode;
		}
	}

	if(e && e.which)
	{ //if which property of event object is supported (NN4)
		e = e;
		var characterCode = e.which; //character code is contained in NN4's which property
	}
	else
	{
		e = event
		var characterCode = e.keyCode; //character code is contained in IE's keyCode property
	}

	if(characterCode == 13)
	{ //if generated character code is equal to ascii 13 (if enter key)
		if (li_prepare_submit(formobj))
		{
			formobj.submit();
		}
	}
}

function in_array(ineedle, haystack, caseinsensitive)
{
	var needle = new String(ineedle);

	if (caseinsensitive)
	{
		needle = needle.toLowerCase();
		for (var i in haystack)
		{
			if (haystack[i].toLowerCase() == needle)
			{
				return i;
			}
		}
	}
	else
	{
		for (var i in haystack)
		{
			if (haystack[i] == needle)
			{
				return i;
			}
		}
	}
	return -1;
}

function fetch_object(idname)
{
	if (document.getElementById)
	{
		return document.getElementById(idname);
	}
	else if (document.all)
	{
		return document.all[idname];
	}
	else if (document.layers)
	{
		return document.layers[idname];
	}
	else
	{
		return null;
	}
}


function AL_AJAX_Handler(async)
{
	this.async = async ? true : false;
}

AL_AJAX_Handler.prototype.init = function()
{

 	if (window.ActiveXObject)
	{
		var control = new Array(
			'Microsoft.XMLHTTP',
			'MSXML2.XMLHTTP',
			'MSXML2.XMLHTTP.3.0',
			'MSXML2.XMLHTTP.4.0',
			'MSXML2.XMLHTTP.5.0'
		);

		for (var i = 0; i < control.length; i++)
		{
			try
			{
				this.handler = eval("new ActiveXObject(control[i])");
				return true;
			}
			catch(e)
			{
			}
		}
	}

	if (window.createRequest)
	{
		try
		{
			this.handler = window.createRequest();
			return true;
		}
		catch(e)
		{
		}
	}

	if (typeof XMLHttpRequest != 'undefined')
	{
		try
		{
			this.handler = new XMLHttpRequest();
			return (this.handler.setRequestHeader ? true : false);
		}
		catch(e)
		{
			return false;
		}
	}

	return false;
}

AL_AJAX_Handler.prototype.onreadystatechange = function(event)
{
	if (!this.handler)
	{
		if  (!this.init())
		{
			return false;
		}
	}
	if (typeof event == 'function')
	{
		this.handler.onreadystatechange = event;
	}
	else
	{
		alert('XML Sender OnReadyState event is not a function');
	}
}

AL_AJAX_Handler.prototype.not_ready = function()
{
	return (this.handler.readyState && (this.handler.readyState < 4));
}


AL_AJAX_Handler.prototype.send = function(desturl, datastream)
{
	if (!this.handler)
	{
		if (!this.init())
		{
			return false;
		}
	}
	if (!this.not_ready())
	{
		this.handler.open('POST', desturl, this.async);
		this.handler.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		this.handler.send(datastream);

		if (!this.async && this.handler.readyState == 4 && this.handler.status == 200)
		{
			return true;
		}
	}
	return false;
}

function ToggleRadio(idname, disabled, checked)
{
	fetch_object(idname).disabled = disabled;
	fetch_object(idname).checked = checked;
}

var do_submit = 0;
var clickedelm = 0;
var do_search = false;

function do_prepare_submit(formobj)
{
	if ((do_search === true && clickedelm == 1) || clickedelm == 2)
	{
		return true;
	}

	do_search = false;
	fetch_object('do_state').src = 'http://www.alepposhost.com/images/spacer.gif';
	formobj.domainname.onchange = function()
	{
		fetch_object('do_state').src = 'http://www.alepposhost.com/images/spacer.gif';
		formobj.domainname.onchange = null;
	}
	formobj.domainname.value = formobj.domainname.value.toLowerCase();

	var arraySupportedDomains = ['com', 'net', 'org'];
	var domain = formobj.domainname.value;
	var extension = "";
	var bolSupportsExtension = -1;
	var regexDomain = /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/;

	var domain_array = domain.split(".");
	for (x=0; x < domain_array.length; x++)
	{
		if (x==0)
		{
			domain = domain_array[x];
		}
		else
		{
			extension = extension + "." + domain_array[x];
		}
    }
	extension = extension.substring(1);
	bolSupportsExtension = in_array(extension, arraySupportedDomains, true);

	ToggleRadio('register', true, false);
	ToggleRadio('transfer', true, false);
	ToggleRadio('selfmanagement', true, false);

	if (!regexDomain.test(formobj.domainname.value))
	{
		fetch_object('do_msg').innerHTML = '<strong>عذراً,</strong> اسم النطاق غير صحيح.<br>فضلاً أعد المحاولة من جديد.';

		fetch_object('do_state').src = 'http://www.alepposhost.com/images/false.gif';
		return false;
	}
	else if(bolSupportsExtension == -1)
	{
		do_search = true;
		fetch_object('do_msg').innerHTML = '<strong>عذراً,</strong> إن إمتداد النطاق<div align="right" dir="ltr" style="color: #F94B12; font-weight: bold;">.' + extension + '</div>غير متاح حجزه من قبلنا, ولكن بإمكانك حجز النطاق من مزود آخر و المتابعة هنا' +
		'<input type="hidden" name="registerdomainname" value="' + domain + '" />' +
		'<input type="hidden" name="registerdomaintld" value="' + arraySupportedDomains[0] + '" />' +
		'<input type="hidden" name="transferdomainname" value="' + domain + '" />' +
		'<input type="hidden" name="transferdomaintld" value="' + arraySupportedDomains[0] + '" />' +
		'<input type="hidden" name="existingdomainname" value="' + domain + '.' + extension + '" />';
		ToggleRadio('selfmanagement', false, true);

		fetch_object('do_state').src = 'http://www.alepposhost.com/images/false.gif';
		return false;
	}
	else
	{
		fetch_object('do_msg').innerHTML = '<br>';
	}

	var test_ajax = new AL_AJAX_Handler(true);
	if (!test_ajax.init())
	{
		return true;
	}

	if (do_submit == 1)
	{
		return false;
	}
	else
	{
		do_submit = 1;
		setTimeout("do_submit = 0", 1000);
	}

	var submitstring = 'ajax=1&domain=' + domain + '&ext=' + extension;

	fetch_object('do_image').src = 'http://www.alepposhost.com/images/progress.gif';
	document.body.style.cursor = 'wait';

	do_ajax_post(submitstring);
	return false;
}

function do_ajax_post(submitstring)
{
	xml = new AL_AJAX_Handler(true);
	xml.onreadystatechange(do_do_ajax_post);
	xml.send('http://www.alepposhost.com/whois/index.php', submitstring);
}

function do_do_ajax_post()
{
	if (xml.handler.readyState == 4 && xml.handler.status == 200 && xml.handler.responseText)
	{
		fetch_object('do_image').src = 'http://www.alepposhost.com/images/search.gif';
		document.body.style.cursor = 'auto';
		do_submit = 0;

		if (xml.handler.responseText.match(/^<!-- domain error -->/))
		{
			fetch_object('do_state').src = 'http://www.alepposhost.com/images/false.gif';
		}

		if (xml.handler.responseText.match(/^<!-- domain avail -->/))
		{
			do_search = true;
			ToggleRadio('register', false, true);
			ToggleRadio('transfer', false, false);
			ToggleRadio('selfmanagement', false, false);

			fetch_object('do_state').src = 'http://www.alepposhost.com/images/true.gif';
		}

		if (xml.handler.responseText.match(/^<!-- domain taken -->/))
		{
			do_search = true;
			ToggleRadio('transfer', false, true);
			ToggleRadio('selfmanagement', false, false);

			fetch_object('do_state').src = 'http://www.alepposhost.com/images/false.gif';
		}

		fetch_object('do_msg').innerHTML = xml.handler.responseText;

		if (is_ie)
		{
			xml.handler.abort();
		}
	}
}



var li_repost = false;
var li_submit = 0;

function li_prepare_submit(formobj)
{
	if (li_repost == true)
	{
		li_repost = false;
		return true;
	}

	var test_ajax = new AL_AJAX_Handler(true);
	if (!test_ajax.init())
	{
		return true;
	}

	if (li_submit == 1)
	{
		return false;
	}
	else
	{
		li_submit = 1;
		setTimeout("li_submit = 0", 1000);
	}

	var submitstring = 'ajax=1';

	for (i = 0; i < formobj.elements.length; i++)
	{
		var obj = formobj.elements[i];

		if (obj.name && !obj.disabled)
		{
			switch (obj.type)
			{
				case 'text':
				case 'textarea':
				case 'hidden':
				case 'password':
					submitstring += '&' + obj.name + '=' + escape(obj.value);
					break;
				case 'checkbox':
				case 'radio':
					submitstring += obj.checked ? '&' + obj.name + '=' + escape(obj.value) : '';
					break;
				case 'select':
				case 'select-one':
					submitstring += '&' + obj.name + '=' + escape(obj.options[obj.selectedIndex].value);
					break;
			}
		}
	}

	fetch_object('li_msg').style.display = '';
	fetch_object('li_msg').innerHTML = '<img src="http://www.alepposhost.com/images/progress.gif" alt="Loading" border="0" /><br><font color="#464646">جاري تسجيل الدخول...</font>';
	document.body.style.cursor = 'wait';

	li_ajax_post(submitstring);
	return false;
}

function li_ajax_post(submitstring)
{
	xml = new AL_AJAX_Handler(true);
	xml.onreadystatechange(li_do_ajax_post);
	xml.send('http://www.alepposhost.com/market/order/index.php?page=customerlogin&submit=login', submitstring);
}

function li_do_ajax_post()
{
	if (xml.handler.readyState == 4 && xml.handler.status == 200 && xml.handler.responseText)
	{
		document.body.style.cursor = 'auto';
		li_submit = 0;

		var text = xml.handler.responseText;

		if (xml.handler.responseText.match(/^<!-- login ok -->/))
		{
			li_repost = true;
			fetch_object('liform').submit();
		}

		fetch_object('li_msg').innerHTML = '<font color="#F94B12">' + text + '</font>';

		if (is_ie)
		{
			xml.handler.abort();
		}
	}
}




var wi_submit = 0;

function wi_prepare_submit(formobj)
{
	var test_ajax = new AL_AJAX_Handler(true);
	if (!test_ajax.init())
	{
		return true;
	}

	if (wi_submit == 1)
	{
		return false;
	}
	else
	{
		wi_submit = 1;
		setTimeout("wi_submit = 0", 1000);
	}

	var submitstring = 'ajax=1';

	for (i = 0; i < formobj.elements.length; i++)
	{
		var obj = formobj.elements[i];

		if (obj.name && !obj.disabled)
		{
			switch (obj.type)
			{
				case 'text':
				case 'textarea':
				case 'hidden':
				case 'password':
					submitstring += '&' + obj.name + '=' + escape(obj.value);
					break;
				case 'checkbox':
				case 'radio':
					submitstring += obj.checked ? '&' + obj.name + '=' + escape(obj.value) : '';
					break;
				case 'select':
				case 'select-one':
					submitstring += '&' + obj.name + '=' + escape(obj.options[obj.selectedIndex].value);
					break;
			}
		}
	}

	fetch_object('wi_msg').style.display = '';
	fetch_object('wi_msg').innerHTML = '<img src="http://www.alepposhost.com/images/progress.gif" alt="Loading" border="0" /><br><font color="#464646">جاري البحث...</font>';
	document.body.style.cursor = 'wait';

	wi_ajax_post(submitstring);
	return false;
}

function wi_ajax_post(submitstring)
{
	xml = new AL_AJAX_Handler(true);
	xml.onreadystatechange(wi_do_ajax_post);
	xml.send('http://www.alepposhost.com/whois/index.php', submitstring);
}

function wi_do_ajax_post()
{
	if (xml.handler.readyState == 4 && xml.handler.status == 200 && xml.handler.responseText)
	{
		document.body.style.cursor = 'auto';
		wi_submit = 0;

		var text = xml.handler.responseText;

		if (xml.handler.responseText.match(/^<!-- domain error -->/))
		{
			fetch_object('wi_msg').innerHTML = text;
		}

		if (xml.handler.responseText.match(/^<!-- domain avail -->/))
		{
			fetch_object('wi_msg').innerHTML = '<font color="#3BAD1A">' + text + '</font><div align="left" style="padding-top:10px;"><a href="http://www.alepposhost.com/order/cart.php?a=add&domain=register" style="color:#3BAD1A; "><strong>من هنا</strong></a></div>';
		}

		if (xml.handler.responseText.match(/^<!-- domain taken -->/))
		{
			fetch_object('wi_msg').innerHTML = '<font color="#0B90A9">' + text + '</font><div align="left" style="padding-top:10px;"><a href="http://www.alepposhost.com/order/cart.php?a=add&domain=register" style="color:#0B90A9; "><strong>من هنا</strong></a></div>';
		}

		if (is_ie)
		{
			xml.handler.abort();
		}
	}
}

/*****************************************************************\
|*  CVS: $RCSfile: aleppos_global.js,v $ - $Revision: 1.0 $
\*****************************************************************/
