﻿// User-Agent
var userAgent = navigator.userAgent.toLowerCase();
var is_opera  = ((userAgent.indexOf('opera') != -1) || (typeof(window.opera) != 'undefined'));
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_ie7    = ((is_ie) && (userAgent.indexOf('msie 7.') != -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 TO EMULATE `DOCUMENT.GET-ELEMENT-BY-ID`
//
this.$I = function(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;
	}
}

//
// TRIMS LEADING AND TRAILING WHITESPACE
//
this.Trim = function(str)
{
	str = str.replace(/^\s+/g, '');
	str = str.replace(/(\s+)$/g, '');
	
	return str;
}

//
// RANDOMIZING
//
this.Rand = function(min, max)
{
	var rand;
	
	max = parseInt(max) - 1;
	min = parseInt(min);
	rand = (Math.random() * max) + 1;
	rand = Math.round(rand);
	rand = rand + min;
	
	return rand;
}

//
// HTML-SPECIAL-CHARS
//
this.Htmls = function(string)
{
	var f, r;
	
	// IS MAC ?
	var is_mac = navigator.userAgent.toLowerCase().indexOf('mac') != -1;
	
	f = new Array
	(
		(is_mac && is_ie ? new RegExp('&', 'g') : new RegExp('&(?!#[0-9]+;)', 'g')),
		new RegExp('<', 'g'),
		new RegExp('>', 'g'),
		new RegExp('"', 'g')
	);
	
	r = new Array
	(
		'&amp;',
		'&lt;',
		'&gt;',
		'&quot;'
	);
	
	for (var i = 0; i < f.length; i++)
	{
		string = string.replace(f[i], r[i]);
	}
	
	return string;
}

//
// FILTER INPUTS
//
this.ParseInput = function(string, type)
{
	string = Trim(string);
	
	string = Htmls(string);
	string = string.replace("\n", "<br />");
	string = string.replace("\"", "\\\"");
	string = string.replace("'", "\'");
	
	if (type)
	{
		switch(type)
		{
			case INT:
			case INTEGER:
				str = parseInt(string);
			break;
			
			case STR:
			case STRING:
			default:
				str = string.toString();
			break;
			
			case UPPER:
				str = string.toString().toUpperCase();;
			break;
			
			case LOWER:
				str = string.toString().toLowerCase();;
			break;
		}
	}
	else
	{
		str = string;
	}
	
	return string;
}

//
// FIXING INPUT-BOX PROBLEM IN 'IE-6'
//
function inputBox()
{
	var i, elements = document.getElementsByTagName("input");
	
	for (i = 0; i < elements.length; i++)
	{
		var obj = elements[i];
		
		if (obj.getAttribute("type") == "text" || obj.getAttribute("type") == "password")
		{
			if (!obj.style.width && !obj.width)
			{
				obj.style.width = "97%";
			}
		}
		else if (obj.getAttribute("type") == "button" || obj.getAttribute("type") == "reset"
				|| obj.getAttribute("type") == "submit")
		{
			obj.style.textAlign = "center";
		}
	}
} 

//
// THE FUNCTION TO EMULATE 'LOCATOR'
//
function load(url)
{
	document.location = url;
}

//
// SHOW IMAGES
//
function showImage(subject, url, width, height)
{
	var obj = $I("image");
	var title = obj.getElementsByTagName("div")[0];
	var content = obj.getElementsByTagName("div")[1];
	
	if (width >= 800)
	{
		width = 800;
	}
	
	title.innerHTML = subject;
	content.innerHTML = "<img src=\"" + url + "\" width=\"" + width + "\" alt=\"خروج\" title=\"خروج\" />";
	obj.style.display = "block";
	obj.style.left = (((typeof document.width == "undefined" ? screen.width : document.width) - obj.offsetWidth) / 2) + "px";
	
	document.onmouseup = function(e)
	{
		closeImage();
	}
	
	// SCROLL TO IMAGE TITLE
	scroll(0, 50);
}

//
// CLOSE IMAGE
//
function closeImage()
{
	var obj = $I("image");
	var title = obj.getElementsByTagName("div")[0];
	var content = obj.getElementsByTagName("div")[1];
	
	title.innerHTML = "";
	content.innerHTML = "";
	obj.style.left = "0pt";
	obj.style.display = "none";
}

//
// PRINTABLE
//
function print(id, save)
{
	URL = "?act=news&type=print&id=" + parseInt(id) + (save ? "&save" : "");
	day = new Date();
	id = day.getTime();
		
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=640,height=600,left = 192,top = 84');");
}

//
// TELL A FRIENDS
//
function tell(id)
{
	URL = "?act=news&type=tell&id=" + parseInt(id);
	day = new Date();
	id = day.getTime();
		
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=316,height=280,left = 192,top = 84');");
}

//
// GET `Y` VALUE OF OBJECT [TOP]
//
function GetY(obj)
{
	obj = typeof obj == "object" ? obj : $I(obj);
	
	var fHeight = obj.offsetHeight;
	var curtop = 0;
	
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
	{
		curtop += obj.y;
	}
	
	var re = curtop + fHeight;
	
	return re;
}

//
// GET `X` VALUE OF OBJECT [LEFT]
//
function GetX(obj)
{
	obj = typeof obj == "object" ? obj : $I(obj);
	
	var curleft = 0;
	
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
	{
		curleft += obj.x;
	}
	
	return curleft;
}

//
// AUTOMATIC HTML-AREA PUTTER
//
function htmltextarea()
{
	var i;
	
	var elements = document.getElementsByTagName("textarea");
	var rands = ['asdasd', 'xcvsdf', 'ertert', 'fhrty', 'tyutyu', 'nmbn', 'fghfgh', 'sdfwr3'];
	
	for (i = 0; i < elements.length; i++)
	{
		var element = elements[i];
		var objId = element.getAttribute("id");
		
		if (element.getAttribute("rel") == "wysiwyg")
		{
			if (!objId)
			{
				objId = rands[i];
				element.setAttribute("id", objId);
				
				generate_wysiwyg(objId);
			}
			
			element.setAttribute("rel", "false");
		}
	}
}

scrollr = 1;

//
// SCROLLER-BOTTOM
//
function scroller(type)
{
	var obj, num, list, none = false,
	
	obj = $I('scroll');
	list = obj.getElementsByTagName('li');
	obj = obj.getElementsByTagName('ul');
	obj = obj[0];
	
	// Make 'Top' value
	num = 81;
	
	if (type == 1)
	{
		if (scrollr != 1)
		{
			num = parseInt(obj.style.top) + num;
			scrollr--;
		}
		else
		{
			none = true;
		}
	}
	else
	{
		if (scrollr != list.length)
		{
			num = parseInt(obj.style.top) - num;
			scrollr++;
		}
		else
		{
			none = true;
		}
	}
	
	// Make position
	if (!none)
	{
		obj.style.top = num + "px";
	}
}

var job = 1;

//
// JOBS SECTION
//
function jobs()
{
	var image = $I("block_job");
	var text = $I("job_name");
	image = image.getElementsByTagName("img");
	image = image[0];
	
	switch(job)
	{
		case 1:
			image.src = "images/job_graphist.jpg";
			text.innerHTML = "گرافيست";
		break;
		
		case 2:
			image.src = "images/job_designer.jpg";
			text.innerHTML = "طراحي وب";
		break;
		
		case 3:
			image.src = "images/job_developer.jpg";
			text.innerHTML = "توسعه دهنده";
		break;
		
		case 4:
			image.src = "images/job_server.jpg";
			text.innerHTML = "مديريت سرور";
		break;
	}
	
	if (job != 4)
	{
		job++;
	}
	else
	{
		job = 1;
	}
	
	setTimeout("jobs();", 5000);
}

// SPECIFY AFFECTED TAGS. ADD OR REMOVE FROM LIST
var tgs = new Array('div', 'td', 'tr');

// SPECIFY SPECTRUM OF DIFFERENT FONT SIZES
var szs = new Array('xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large');
var startSz = 2;

//
// TEXT-RESIZER
//
function ts(trgt, inc)
{
	if (!document.getElementById)
	{
		return
	}
	
	var d = document,
		cEl = null,
		sz = startSz,
		i, j, cTags;
	
	sz += inc;
	
	if (sz < 0)
	{
		sz = 0;
	}
	
	if (sz > 6)
	{
		sz = 6;
	}
	
	startSz = sz;
		
	if (!(cEl = d.getElementById(trgt)))
	{
		cEl = d.getElementsByTagName(trgt)[0];
	}
	
	cEl.style.fontSize = szs[sz];
	
	for (i = 0 ; i < tgs.length ; i++ )
	{
		cTags = cEl.getElementsByTagName(tgs[i]);
		
		for (j = 0 ; j < cTags.length ; j++)
		{
			cTags[j].style.fontSize = szs[sz];
		}
	}
}

//
// MAKE INTERNAL LINK
//
function URL()
{
	var i;
	
	var ulist = document.getElementsByTagName("a");
	
	for (i = 0; i < ulist.length; i++)
	{
		var ulistlink = ulist[i];
		
		if (!ulistlink.getAttribute("target") && ulistlink.getAttribute("url") && ulistlink.getAttribute("rel") != "false")
		{
			if (ulistlink.getAttribute("url") && ulistlink.getAttribute("rel"))
			{
				ulistlink.removeAttribute("href");
				
				ulistlink.onclick = function()
				{
					var dem = this.getAttribute("rel").split(" ")[1].split(":");
					showImage(this.getAttribute("title"), this.getAttribute("url"), dem[0], dem[1]);
				}
			}
		}
	}
}
