//============================================
// SMS mod for IPB 2.0
// Version 1.0
//
// (c) 2006, DINI
//
//--------------------------------------------
//
// AJAX PUBLIC MODULE
//
//============================================

var http_request = false;

function initRequest()
{
	if (window.XMLHttpRequest)
	{
		//-----------------------------------------
		// It's Mozilla or Safari
         	//-----------------------------------------

		http_request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		//-----------------------------------------
		// It's IE
         	//-----------------------------------------

		try
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {}
		}
	}

	if (!http_request)
	{
		//Cannot create an XMLHTTP instance

		return false;
	}
	else if(http_request.overrideMimeType)
         {
		http_request.overrideMimeType('text/xml');
	}
}

//-----------------------------------------
// INSERT SMS ROW
//-----------------------------------------

function ajax_SmsRow( pid, mid )
{
	tbl = my_getbyid( 'posttable_'+pid );
	pic = my_getbyid( 'img_'+pid );

	if( tbl.rows.length == 4 )
	{		tr = tbl.insertRow(3);
		tr.insertCell(0).innerHTML = "&nbsp;";
		tr.insertCell(1).innerHTML = "<div align='left'><input type='text' size='50' name='message_text' id='mess_"+pid+"' class='searchinput' value='"+lang_sms_text+"' onfocus='ajax_SmsCheckValue(this, 1)' onblur='ajax_SmsCheckValue(this, 2)' />&nbsp;<input type='submit' value='"+lang_sms_send+"' class='searchinput' onclick='ajax_SmsSend("+pid+","+mid+"); return false;'/></div>";

		tr.cells[0].className = 'formbuttonrow';
		tr.cells[1].className = 'formbuttonrow';

		tr.cells[0].setAttribute('nowrap', 'nowrap');
		tr.cells[1].setAttribute('nowrap', 'nowrap');

		pic.src = sms_img_remove;
		pic.alt = " - SMS ";	}

	else
	{		tbl.deleteRow(3);
		pic.src = sms_img_add;
		pic.alt = " + SMS ";	}
}

//-----------------------------------------
// SEND SMS
//-----------------------------------------

function ajax_SmsSend( pid, mid )
{
	tbl = my_getbyid( 'posttable_'+pid );
	pic = my_getbyid( 'img_'+pid );

	mess = my_getbyid( 'mess_'+pid );

	if( mess.value == "" || mess.value == lang_sms_text )
	{
		alert( lang_sms_error );
		return false;
	}

	initRequest();

	http_request.onreadystatechange = function()
	{
		if (http_request.readyState == 4 && http_request.status == 200)
		{
			var xmldoc	= http_request.responseXML;
			var msg		= xmldoc.getElementsByTagName('message').item(0).firstChild.data;
			var state		= xmldoc.getElementsByTagName('state').item(0).firstChild.data;

			if( state == "OK" )
			{
				tbl.deleteRow(3);
				pic.src = sms_img_add;
				pic.alt = " + SMS ";
			}

			alert( msg );
		}
	};
	http_request.open( "GET", ipb_var_base_url+"act=sms&CODE=xml_SendSms&mid="+mid+"&mess="+ajax_EncodeTxt(mess.value), true );
	http_request.send( null );
}

//-----------------------------------------
// CHECK VALUE
//-----------------------------------------

function ajax_SmsCheckValue( mess, type )
{
	if( type == 1 )
	{
		if( mess.value == "" ) mess.value = lang_sms_text;
		if( mess.value == lang_sms_text ) mess.value = "";
	}

	if( type == 2 )
	{
		if( mess.value == lang_sms_text ) mess.value = "";
		if( mess.value == "" ) mess.value = lang_sms_text;
	}
}

//-----------------------------------------
// ENCODE TEXT
//-----------------------------------------

function ajax_EncodeTxt( txt )
{
	var xValue = escape( txt );
	var idx = xValue.indexOf("%u");

	while (idx != -1)
	{
		var xuChar = xValue.substring( idx, idx+6 );
		var xFD = parseInt( xuChar.substring( 4, 5 ) ) + 11;
		var xURLChar = "%"+"0123456789ABCDEF".substring( xFD, xFD+1 ) + xuChar.substring( 5, 6 );

		xValue = xValue.replace( xuChar, xURLChar );
		idx = xValue.indexOf( "%u", idx+2 );
	}

	return xValue;
}
