$(document).ready(function() {
	var loc = (location.href).split('#');
	if(loc[1] == 'non-flash'){
		load_page('','old/form');
		$("#menu LI").removeClass('active');
		$("._nonflash").addClass('active');
	}else if(loc[1] == 'faq'){
		load_page('','includes/faq_form');
		$("#menu LI").removeClass('active');
		$("._faq").addClass('active');
	}else if(loc[1] == 'contact'){
		load_page('','includes/contact_form');
		$("#menu LI").removeClass('active');
		$("._contact").addClass('active');
	}else{
		
	}
	
	$("#upload-form").css('display','block');
});




function load_page(o, page){
	$('#upload-form').load(page+'.php');
	if(o != '') {
		$("#menu LI").removeClass('active');
		o.parentNode.className='active';
	}
}

function send_link_gallery(){
	$.ajax({
	  url: 'send_link_gallery.php?email='+$("#permalink-email").val(),
	  success: function(data){
		alert('Sent successfully !');
		$("#permalink").click();
	  }
	});
	
}

function foo(s)
{
	document.getElementById('footer').innerHTML += '<div>'+s+'</div>'
}

function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}

var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	try {
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			version = "WIN 6,0,21,0";
			axo.AllowScriptAccess = "always";
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

function GetSwfVer(){
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
	
}

function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			tempArray         = versionStr.split(" ");
			tempString        = tempArray[1];	
			versionArray      = tempString.split(",");
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}
var flVer = GetSwfVer();
var flashLoader = null
var globalTasks = new Array ()
var cookiesEnabled = true

function httpPerform (target, msg, wait, begin, end)
{
	
}

function runHttpScheduler ()
{
	var getFreeHttpStream = function ()
	{
		if (!httpStreams[0].busy)
			return 0
		else if (!httpStreams[1].busy)
			return 1
		else
			return -1
	}
	
	window.setInterval (function ()
	{
		if (globalTasks.length != 0)
		{
			var i = getFreeHttpStream ()
			
			if (i >= 0)
			{				
				var task = globalTasks[0]
				globalTasks.splice (0, 1)
								
				httpStreams[i].busy = true
				
				task.begin ()
				
				var timeout = window.setTimeout (function ()
				{					
					httpStreams[i].object.onreadystatechange = function () {}
					httpStreams[i].busy = false
					
					if (navigator.appVersion.indexOf ('MSIE 6') < 0)
						httpStreams[i].object.abort ()
					
					httpPerform (task.target, task.msg, task.wait, task.begin, task.end)
					
				}, 5000)
				
				try
				{
					httpStreams[i].object.open ('POST', task.target.match(/(\/[^\/]*)$/)[0], true)
					httpStreams[i].object.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')	
					httpStreams[i].object.onreadystatechange = function ()
					{
						try
						{
							if (httpStreams[i].object.readyState == 4)
							{							
								if ((httpStreams[i].object.status == 200) && httpStreams[i].object.responseText)
								{
									window.clearTimeout (timeout)
									httpStreams[i].object.onreadystatechange = function () {}
									
									var response = httpStreams[i].object.responseText
									
									window.setTimeout (function () { task.end (response) }, 10)
									
									httpStreams[i].busy = false
								}
							}
						}
						catch (e) {}
					}
					
					httpStreams[i].object.send (task.msg)
				}
				catch (e) {}
			}
		}
		
	}, 500)
}

function findParent (e, pred)
{
	var p = e
	
	while (true)
	{
		if (pred (p))
			return p
		else if (p.parentNode)
			p = p.parentNode
		else
			return undefined
	}
}

function findByClass (e, tag, cls)
{	
	var tags = e.getElementsByTagName (tag)

	for (var i = 0, n = tags.length; i != n; i++)
	{
		var tag = tags[i]
				
		if (tag.className == cls)
		{
			return tag
		}
	}
	
	return undefined
}

function parseHTML (host, text, next)
{
	host.removeChild (mkChild (host, 'div', function (d)
	{
		d.style.display = 'none'
		d.innerHTML = text
		next (d)
	}))
}

function animateHeight (e, start, target, advance, onBegin, onDone)
{

}

function extractFileName (data)
{
    data = data.replace(/^\s|\s$/g, "");

    if (/\.\w+$/.test(data))
    {
        var m = data.match(/([^\/\\]+)\.(\w+)$/);
        if (m)
            return m[1] + '.' + m[2]
        else
            return "(file)"
    }
    else
    {
        var m = data.match(/([^\/\\]+)$/);
        
        if (m)
            return m[1]
        else
            return "(file)"
    }
}

function xyFromEvent (e, next)
{
  if (e.pageX)
    next (e.pageX, e.pageY)
  else
    next (e.clientX + document.body.parentElement.scrollLeft, e.clientY + document.body.parentElement.scrollTop)
}

function placeInputUnderCursor (e, x, y)
{
  e.style.position = 'absolute'
  e.style.left = (x - e.offsetWidth + 10) + 'px'
  e.style.top = (y - 5) + 'px' 
}

function mkChild (p, tag, f)
{
  var e = document.createElement (tag)
  f (e)
  p.appendChild (e)
  return e
}

function frameDocument (id)

{	
  var f = document.getElementById (id)
 
  if (f.contentDocument)
    return f.contentDocument
  else if (f.contentWindow)
    return f.contentWindow.document  
  else
    return window.top.frames[id].document
}

function blink (e, should)
{
	if (!should)
	{
		if (e._stopBlink)
			e._stopBlink ()
	}
	else if (!e._stopBlink)
	{
		var time = 0
		
		var anim = window.setInterval (function ()
		{
			if (e._stopBlink)
			{
				var x = Math.floor (Math.sin (time * 0.01) * 127 + 128)
				e.style.color = 'rgb(' + x + ',' + x + ',' + x + ')'
				time += 10
			}
		
		}, 10)
	  
		e._stopBlink = function ()
		{
			window.clearInterval (anim)
			e.style.color = ''
			e._stopBlink = undefined
		}
	}
}

function mkUploadUI (e, fileName, next)
{     
	next (mkChild (e, 'div', function (box)
	{
		box.className = 'ui'
			  
		mkChild (box, 'div', function (e)
		{
			e.className = 'file'
			e.innerHTML = (fileName.length > 13) ? (fileName.substr (0, 13) + '...') : fileName
		})          
		
		box._indicator = mkChild (box, 'div', function (e)
		{
			e.className = 'indicator'
			e._set = function (cls, text, shouldBlink)
			{
				blink (e, shouldBlink)
				e.className = cls
				e.innerHTML = text
			}
		})
		
		box._progress = mkChild (box, 'div', function (frame)
		{
			frame.className = 'progressframe hidden'
			frame._value = 0
			
			mkChild (frame, 'div', function (progress)
			{
				progress.className = 'progressbar'
				
				frame._update = function (value)
				{
					frame._value = value
					progress.style.width = value + '%'
				}
			})
		})
	}))
}

// link button to mouse
function attachFileInputToMouse (e, input)
{
	var hostMousemove = undefined
	var hostMouseout = undefined
	var inputMousemove = undefined
	
	var attach = function ()
	{
		hostMousemove = handle (e, 'mousemove',
			function (event)
			{
			  xyFromEvent (event, function (x, y)
			  {
				placeInputUnderCursor (input, x+20, y-10)
			  })
			})
		
		hostMouseout = handle (e, 'mouseout',
			function (event)
			{
			  xyFromEvent (event, function (x, y)
			  {
				if ((x < e.offsetLeft) || (y < e.offsetTop) ||
					(x > e.offsetLeft + e.offsetWidth) || (y > e.offsetTop + e.offsetHeight))
				{
					input.style.left = -10000 + 'px'
				}
			  })
			})
		
		inputMousemove = handle (input, 'mousemove',
			function (event)
			{
			  xyFromEvent (event, function (x, y)
			  {
				placeInputUnderCursor (input, x, y)
			
				if ((x < e.offsetLeft) || (y < e.offsetTop) ||
					(x > e.offsetLeft + e.offsetWidth) || (y > e.offsetTop + e.offsetHeight))
				{
					input.style.left = -10000 + 'px'
				}
			  })
			})
			
		input._detachFromMouse = function ()
		{
			cancelHandle (hostMousemove)
			cancelHandle (hostMouseout)
			cancelHandle (inputMousemove)
			
			input.onmouseout = function () {}
			input.onmouseup = function () {}
			
			input._detachFromMouse = undefined
		}
		
		input.onmousedown = function ()
		{
			if (input._detachFromMouse)
			{
				input._detachFromMouse ()
	
				documentMousemove = handle (document.body, 'mousemove',
					function (event)
					{
					  xyFromEvent (event, function (x, y)
					  {
						placeInputUnderCursor (input, x, y)
					  })
					})

				input.onmouseup = input.mouseout = function ()
				{
					cancelHandle (documentMousemove)
					input.style.left = -10000 + 'px'
		
					var temp = handle (e, 'mousemove',
						function (event)
						{
							input.blur ()
							cancelHandle (temp)
							xyFromEvent (event, function (x, y) { placeInputUnderCursor (input, x, y) })
							attach ()
						})
				}
			}
		}
	  
		input.onmouseout = function ()
		{
			input.style.left = -10000 + 'px'
		}
	}
	
	attach ()
}

function getLinksUI ()
{
	var ui = document.getElementById ('links-ui')
	
	if (ui)
	{
		return ui
	}
	else
	{
		return mkChild (document.body, 'div', function (ui)
		{
			ui.id = 'links-ui'
			ui.style.display = 'none'
			
			var respawn = function (byButton)
			{
				ui._doNotHide = false
				
				if (ui._onClose)
				{
					ui._onClose (byButton)
					ui._onClose = undefined
				}
			}
			
			ui._close = function (byButton)
			{
				respawn (byButton)
				ui.style.display = 'none'
			}
			
			ui._header = mkChild (ui, 'a', function (a)
			{
				a.href = '#close'
				a.className = 'header'
				
				//a.innerHTML = localizedText.close

				a.onmousedown = function ()
				{
					ui._close (true)
					ui._resetDelay ()
					return false
				}
			})
			
			var copyLinks = new Array ()
			
			ui._updateLinksText = function ()
			{
				for (var i = 0; i != copyLinks.length; i++)
				{
					copyLinks[i].innerHTML =
						(window.clipboardData || (flashLoader != null)) ? localizedText.copy : localizedText.select
				}
			}
			
			ui._body = mkChild (ui, 'div', function (body)
			{
				body.className = 'body'
				
				var mkLink = function (parent, desc)
				{					
					return mkChild (parent, 'p', function (p)
					{
						mkChild (p, 'span', function (e)
						{
							e.innerHTML = desc + ': '
						})
						
						var textarea
						
						var copy = mkChild (p, 'a', function (a)
						{
							//a.href = '#'
							
							copyLinks[copyLinks.length] = a
							
							a.onclick = function ()
							{
								if (flashLoader != null)
								{
									textarea.focus ()
									textarea.select ()
									flashLoader.copyToClipboard (textarea.value)
								}
								else
									copyToClipboard (textarea)
									
								return false
							}
						})
						
						var disabledCopy = mkChild (p, 'em', function (a)
						{
							copyLinks[copyLinks.length] = a
							
							a.className = 'hidden'
							a.innerHTML = window.clipboardData ? localizedText.copy : localizedText.select
						})
						
						textarea = mkChild (p, 'input', function (e)
						{
							e.type = 'text'
							e.readOnly = 'readonly'
							e.onfocus = function () { ui._doNotHide = true }
							e.onblur = function () { var text = e.value; e.value = ''; e.value = text; ui._doNotHide = false }
							e.onmouseup = function () { e.select () }
						})
						
						var disabledTextarea = mkChild (p, 'b', function (e)
						{
							e.className = 'hidden'
							e.innerHTML = localizedText.notavailable + ' <a href="/includes/faq.php"> (' + localizedText.why + ')</a>'
						})
						
						p._set = function (copyHref, url)
						{
							if (url == '')
							{
								copy.className = 'hidden'
								textarea.className = 'hidden'
								disabledCopy.className = ''
								disabledTextarea.className = ''
							}
							else
							{
								copy.className = ''
								textarea.className = ''
								disabledCopy.className = 'hidden'
								disabledTextarea.className = 'hidden'
								
								if (copyHref != '')
									copy.href = copyHref

								textarea.value = url
							}
						}
					})
				}
				
				body._contents = mkChild (body, 'div', function (contents)
				{
					ui._linkView = mkLink (contents, localizedText.chat)
					ui._linkForum = mkLink (contents, localizedText.forum)
					ui._linkHTML = mkLink (contents, localizedText.blog)
					ui._linkDirect = mkLink (contents, localizedText.direct)
					
					ui._updateLinksText ()
				})
			})
			
			ui._spawn = function (parent, onShow, onClose, linkView, linkHTML, linkForum, linkDirect)
			{
				ui._resetDelay ()
				
				parent.appendChild (ui)
				
				respawn (false)
				
				ui.style.display = ''
				ui._onClose = onClose
				
				ui._linkView._set (linkView, linkView)
				ui._linkHTML._set ('', linkHTML)
				ui._linkForum._set ('', linkForum)
				ui._linkDirect._set (linkDirect, linkDirect)
				
				onShow ()
			}
			
			ui._resetDelay = function ()
			{
				if (ui._delay)
				{
					window.clearTimeout (ui._delay)
					ui._delay = undefined
				}
			}
			
			ui._triggerDelay = function (onDone, time)
			{
				ui._resetDelay ()
				ui._delay = window.setTimeout (function () { onDone () }, time)
			}
		})
	}
}

function mkLinksButton (slot, noHoverOpen)
{

}
function showAllLinks(){
		var hint_div = document.getElementById ('show-links')
		var allLinks_div = document.getElementById ('all-links');
		  $("#show-links").slideUp('slow');
		 $("#all-links").slideDown('slow');
		
		//allLinks_div.style.display = 'block';
		//hint_div.style.display = 'none';
}
function createAllLinksUI (list)
{
	

}

function getFileName (url)
{
	return url.match(/\_([^\/]+)([\s\S]+)?$/)[1]
}

function createClickField (slot, cls, text, defaultCursor, onClick)
{
	slot._clickField = mkChild (slot, 'a', function (a)
	{
		a.className = cls
		a.innerHTML = text
		a.id = '1'
		
		//a.style.zIndex = -1000;
		//a.href = '#'
		if(flVer == -1){
		a.style.position = 'relative'
		
		}else{
		//a.style.position = 'absolute'	
		
		}
		if (defaultCursor)
			a.style.cursor = 'pointer'
				
		//a.onclick = function () { onClick (); return false; }
	})
}

function enterFlashChooseFileState (slot, index)
{
	slot._state = 'choosefile'
	slot.className = 'choose'
	
	/*****09th sep***** */
	//slot._clickField.style.marginTop = '-3px'
	createClickField (slot, 'choosefile', localizedText.click, false,
		function ()
		{
			try
			{
				//flashLoader.upload (index)
			}
			catch (e)
			{
				//alert (localizedText.flashError)
			}
		})
}


/**************new components*******************************/
function createRequestObject() {
		var ro;
		var browser = navigator.appName;
		if(browser == "Microsoft Internet Explorer"){
			ro = new ActiveXObject("Microsoft.XMLHTTP");
		}else{
			ro = new XMLHttpRequest();
		}
		return ro;
	}
	
var http = createRequestObject();

//var nxt = document.getElementsByName('li_blank');


function uploadURL(){	
			
			//alert($('count_slot').length);
			var index = $('.count_slot');					
			var addImgCount =  document.getElementById ('img_count');
			var slot_count = (index.length*1) + (addImgCount.value*1);
			//alert(slot_count);
			var url = document.getElementById ('fromurl-value');
			var button= document.getElementById ('fromurl-submit');
			
			if(slot_count == 16){
					
				}
			if(url != ''){
				url.disabled = 'true'
				button.disabled = 'true'
				button.value = 'uploading....'
				
				http.open('get', '../ajaxtunnel.php?action=uploadURL&url='+url.value+'&count='+slot_count);
				http.onreadystatechange = resUploadURL;
				http.send(null);
				
			}
		
}

function resUploadURL() {
		if(http.readyState == 4){
			var url = document.getElementById ('fromurl-value');
			var button= document.getElementById ('fromurl-submit');
			var addImgCount =  document.getElementById ('img_count');	
			var addSlotCount =  document.getElementById ('slot_count');	
			var response = http.responseText;
			//alert(response);
				url.disabled = false
				button.disabled = false
				url.value = ''
				button.value = 'upload Image'
				
				if(response == 0){
					document.getElementById ('fromurl-ui').className = 'block';	
					
				}else{
					$.ajax({
					  url: 'form.php',
					  success: function(data){
						$('#upload-form').html(data);
					  }
					});

					//$('#upload-form').load('form.php');
				/*
					nxt[addImgCount.value].innerHTML = response;					
					document.getElementById ('fromurl-ui').className = 'hidden';
					addImgCount.value = (addImgCount.value*1)+1;
					addSlotCount.value = (addSlotCount.value*1)+1;
					showButtons();
					if(addSlotCount.value >= 2){							
							showLinkHolder();
							loadImURL();
					} */
					//http.open('get', '../ajaxtunnel.php?action=loadImages');
				//	http.onreadystatechange = resUploadURL;
				//	http.send(null);
				}
				
				//window.location.reload();
				//alert(queueSize);						
		}
}

function showLinkHolder(){
		//var hint_div = document.getElementById ('show-links')
		$("#show-links").show();
}
/******************* Load the all url values***************************/

function loadImURL(){
	
				http.open('get', '../ajaxtunnel.php?action=loadImURL');
				http.onreadystatechange = resLoadImURL;
				http.send(null);
	
	}

function resLoadImURL() {
		if(http.readyState == 4){
			var response = http.responseText;
			
			var url4sharing = document.getElementById('url_4_sharing');
			var url4forums = document.getElementById('url_4_forums');
			var url4websites = document.getElementById('url_4_websites');
			
			url4sharing.value = '';
			url4forums.value = '';
			url4websites.value = '';
			
			var newRes = response.split('#');
			
			var newResIM = newRes[0].split('^');			
			for(var j=0;j < newResIM.length;j++){
				url4sharing.value += newResIM[j]+'\r\n';
			}
			
			var newResIM = newRes[1].split('^');			
			for(var j=0;j < newResIM.length;j++){
				url4forums.value += newResIM[j]+'\r\n';
			}
			
			var newResIM = newRes[2].split('^');			
			for(var j=0;j < newResIM.length;j++){
				url4websites.value += newResIM[j]+'\r\n';
			}
		}
		//loadForumURL();
}


/**********************************************************************/


// display save image form
function showURL(){		
	
	var style_class = document.getElementById ('fromurl-ui').className;
	if(style_class == 'hidden'){
		document.getElementById ('fromurl-ui').className = 'block';
	}else{
		document.getElementById ('fromurl-ui').className = 'hidden';
	}
		
}

// display reset and save image links
function showButtons(){
	
		document.getElementById ('persistence').className = '';
		document.getElementById ('signup').style.display = 'none';
}

function showLinks(id){
			
			var links_ui = document.getElementsByName('links-ui_'+id);
			var link_div =  document.getElementsByName('link_div_'+id);
			
			links_ui[0].className = 'block';
			link_div[0].className = 'hidden';
			document.getElementsByName(links-ui).className = 'block';
			document.getElementsByName(link_div).className ='hidden';
			
		
}

function hideLinks(id){
		
		var links_ui = document.getElementsByName('links-ui_'+id);
		var link_div =  document.getElementsByName('link_div_'+id);
		links_ui[0].className = 'hidden';
		link_div[0].className = 'block';
		
}

/*******************************************/

// upload button
function enterChooseFileState (slot, onDone)
{
	slot._state = 'choosefile'
	slot.className = 'choose'
	
	
	
	
	if(flVer == -1){
		var up_holders = document.getElementsByName('uploadify_holder');
		var uploadHref = document.getElementsByName('up_text');
		
		
		
		mkChild (slot, 'input', function (f)
	{
		
		
		f.type = 'file'
		f.name = 'FileImage'+parseInt(Math.random()*1000000)
		f.id = 'FileImage'+parseInt(Math.random()*1000000)
		f.style.cursor = 'pointer';
		f.className = 'transparent'
		f.style.position = 'absolute'
		f.style.left = -10000 + 'px'
		f.style.zIndex = 999
		
		for(var j=0;j < uploadHref.length;j++){
			
			uploadHref[j].style.position='absolute';
			uploadHref[j].style.marginLeft='-25px';
			uploadHref[j].style.marginTop='10px';
			uploadHref[j].style.cursor='pointer';
			
			
		}
		
		

		slot._exitChooseFileState = function ()
		{
				if (f._detachFromMouse)
					f._detachFromMouse ()
					
				f.blur ()
				f.display = 'none'
	
				if (slot._clickField)
				{
					slot.removeChild (slot._clickField)
					slot._clickField = undefined
				}
				
				slot.className = ''
				slot._exitChooseFileState = undefined
				slot._setChooseFileReady = undefined
		}

	
		f.onchange = function ()
		{
				    
    
			jsUpload(this);			
			return true;
		}
		f.onclick = function ()
		{
			
			document.getElementById('txtField').value = this.name;
		}
		if (navigator.appVersion.indexOf ('MSIE 6') >= 0)
		{
			f.onmouseup = function ()
			{
				f.onfocus = function ()
				{
					f.blur ()
					f.onfocus = ''
				}
			}
		}
		
		createClickField (slot, '',
			localizedText.loading, true,
			function () {})
				
		slot._setChooseFileReady = function ()
		{
			try
			{
				
				slot._clickField.className = 'choosefile'
				slot._clickField.innerHTML = localizedText.click
				attachFileInputToMouse (slot._clickField, f)
				
			} catch (e) {}
		}
	})
		
		
		
		
	}else{
	mkChild (slot, 'inp', function (f)
	{
		
		createClickField (slot, 'loading',
			'', true,
			function () {})
				
		slot._setChooseFileReady = function ()
		{
			try
			{
				slot._clickField.className = 'choosefile'
				slot._clickField.style.height = '40px';
				slot._clickField.innerHTML = ''				
				
				slot._clickField.style.marginTop = '-33px'
				if(isIE){
					slot._clickField.style.marginLeft = '-22px'
				}
			} catch (e) {}
		}
	})
	}
}


function setButton(slot,button){
	var clickSlot = document.getElementById(slot);
	
}

function jsUpload(upload_field)
{
		
		upload_field.form.submit();
		
		return true;
}
	
function enterConnectingState (slot, ui, onDone)
{
}

function enterUploadingFromURLState (slot, ui, uploadTarget, sourceURL, onError, onDone)
{
}

function enterUploadingState (slot, ui, file, uploadTarget, onDone)
{	
}

function parseUploadResponse (response, ui, onError, onEmpty, onDone)
{
}

function enterRetrievingState (slot, ui, uploadTarget, onError, onDone)
{
}

function enterUploadedState (slot, url4sharing, url4web, url4forums, urlDirect, thumb)
{

}

function enterErroneousState (slot, ui, errorMessage)
{
	slot._state = 'error'
	
	ui._indicator._set ('error', errorMessage, false)
	
	addClass (ui._progress, 'hidden')
}

function enterWaitingState (slot, ui, onDone)
{

}

function clickExtendBehavior (li, index, anim)
{
	var numItems = li.parentNode.getElementsByTagName ('li').length
	
	if (numItems - index <= 4)
	  for (var i = 0; i != 4; i++)
		createSlot (li.parentNode, numItems + i, anim)
}

function createSlot (list, index, anim)
{
	mkChild (list, 'li', function (slot)
	{
		slot.className = 'blank'
		jsEnableSlot (slot, index, anim)
	})
}

function enterUploadedState2 (slot, url4sharing, url4web, url4forum, urlDirect, thumb)
{

}

function enterRetrievingState2 (slot, ui, uploadTarget)
{
	
}

function jsEnableSlot (slot, index, anim)
{
	slot._state = ''
	
	if (slot.className == 'blank')
	{
		var mkContents = function ()
		{
			if (flashLoader != null)
			{
				enterFlashChooseFileState (slot, index)
			}
			else
			{
				enterChooseFileState (slot, function (file, fileName)
				{
					clickExtendBehavior (slot, index, true)
					
					mkUploadUI (slot, fileName, function (ui)
					{
						enterConnectingState (slot, ui,
							function (uploadTarget) /* done */
							{
								enterWaitingState (slot, ui, function ()
								{
									enterUploadingState (slot, ui, file, uploadTarget,
										function ()
										{
											enterRetrievingState2 (slot, ui, uploadTarget)
										})
								})
							})
					})
				})
			}
		}
		
		if (anim)
			animateHeight (slot, 0, 90, 10, function () {}, mkContents)
		else
			mkContents ()
	}
	else if (slot.className == 'thumb')
	{
		slot.parentNode._numRecent++
		
		slot._state = 'uploaded'
		
		var urls = slot.getElementsByTagName ('textarea')
		
		enterUploadedState (slot, 
			slot.getElementsByTagName ('a')[0].href,
			urls[1].value,
			urls[0].value,
			urls.length > 2 ? urls[2].value : '',
			slot.getElementsByTagName ('img')[0].src)
	}
}

function jsEnableSlots ()
{
	var list = document.getElementById ('slots')
	
	if (list)
	{
		list._foreach = function (visit)
		{
			var lis = list.getElementsByTagName ('li')
			
			for (var i = 0, n = lis.length; i != n; i++)
			{
				visit (lis[i], i)
			}
		}
		
		list._numRecent = 0
		
		list._foreach (function (slot, index)
		{
			jsEnableSlot (slot, index, false)
		})
	}
}

function finalizeProgress (p)
{
	if (p._anim == undefined)
	{
		addClass (p, 'complete')
		
		var opacity = 100
		p._anim = window.setInterval (function ()
		{
			opacity = Math.max (opacity - 1, 0)
			
			if (isIE)
				p.style.filter = 'alpha(opacity=' + opacity + ')'
			else
				p.style.opacity = opacity / 100
			
			if (opacity == 0)
			{
				addClass (p, 'hidden')
				window.clearInterval (p._anim)
			}
			
		}, 10)
	}
}

function updateProgress (slotIndex, value)
{
	var slot = ((document.getElementById ('slots')).getElementsByTagName ('li'))[slotIndex]

	var progress = slot._ui._progress
	
	if (progress._value != 100)
	{
		removeClass (slot._ui._progress, 'hidden')
		
		progress._animTarget = value
		
		if (progress._anim == undefined)
		{
			progress._anim = window.setInterval (function ()
			{
				progress._update (Math.min (progress._animTarget, progress._value + 1))
				
				if (progress._value == progress._animTarget)
				{
					window.clearInterval (progress._anim)
					progress._anim = undefined
					
					if (progress._value == 100)
					{
						finalizeProgress (progress)
					}
				}
		
			}, 10)
		}
	}
}

function updateSlotIndicator (slotIndex, state)
{
	var slot = ((document.getElementById ('slots')).getElementsByTagName ('li'))[slotIndex]
	
	if (state == 'uploading')
	{
		slot._state = state
		slot._ui._indicator._set ('blinking', localizedText.uploading, true)
	}
	else
	{
		addClass (slot._ui._progress, 'hidden')
				
		if (state == 'connecting')
		{
			slot._state = state
			slot._ui._indicator._set ('blinking', localizedText.connecting, false)
		}
		else if (state == 'waiting')
		{
			slot._state = state
			slot._ui._indicator._set ('blinking', localizedText.waiting, false)
		}
		else if (state == 'error')
		{
			enterErroneousState (slot, slot._ui, localizedText.fileTooBig)
		}
		else if (state == 'httperror')
		{
			enterErroneousState (slot, slot._ui, localizedText.uploadFailed)
		}
		else if (state == 'ioerror')
		{
			enterErroneousState (slot, slot._ui, localizedText.ioError)
		}
	}
}

function enterRetrievingStateFromFlash (slotIndex, uploadTarget)
{
	var slot = ((document.getElementById ('slots')).getElementsByTagName ('li'))[slotIndex]
	
	finalizeProgress (slot._ui._progress)
	
	enterRetrievingState2 (slot, slot._ui, uploadTarget);
}

function allocateSlotsAndCommenceUpload (multiuploader, seekFrom, fileNames)
{
	var list = document.getElementById ('slots')
	var slots = list.getElementsByTagName ('li')
	
	var fileIndex = 0
	
	var slotIndices = new Array ()
	
	for (var i = seekFrom; (i != slots.length) && (fileIndex != fileNames.length); i++)
	{
		var slot = slots[i]
		
		if (slot._finalizeAnim)
		{
			slot._finalizeAnim ()
		}
		
		if (slot._state == 'choosefile')
		{
			slot.innerHTML = ''
		
			slot._state = 'waiting'
			
			mkUploadUI (slot, fileNames[fileIndex], function (ui)
			{
				slot.className = ''
				slot._ui = ui
				ui._indicator._set ('blinking', localizedText.waiting, false)
			})

			slotIndices[fileIndex] = i
			
			clickExtendBehavior (slot, i, (fileNames.length - fileIndex) <= 4)
			
			fileIndex++
		}
	}
	
	return slotIndices
}

function sendPermalink (email, respond)
{
	httpPerform ('/?permalink&js',
		'email=' + encodeURIComponent (email) + '&submit=',
		function () {},
		function () {},
		respond)
}

function jsEnableTab (name, tabContext, activeClass, inactiveClass, next)
{
	var tab = document.getElementById (name)
	var ui = document.getElementById (name + '-ui')
	
	if (tab && ui)
	{
		tab._activeClass = activeClass
		tab._inactiveClass = inactiveClass
				
		tab.onclick = function ()
		{
			tab.blur ()
			
			if (tabContext.activeTab && tabContext.activeUI)
			{
				replaceClass (tabContext.activeTab, tabContext.activeTab._activeClass, tabContext.activeTab._inactiveClass)
				replaceClass (tabContext.activeUI, 'block', 'hidden')
			}
			
			if (tabContext.activeTab != tab)
			{
				tabContext.activeTab = tab
				tabContext.activeUI = ui
				
				swapClass (tab, tab._activeClass, tab._inactiveClass)
				swapClass (ui, 'block', 'hidden')
			}
			else
			{
				tabContext.activeTab = undefined
				tabContext.activeUI = undefined
			}
		
			return false
		}
		
		next (tab, ui)
		
		if (classPresent (tab, tab._activeClass))
		{
			tabContext.activeTab = tab
			tabContext.activeUI = ui
		}
	}
}
// session clear
function jsEnableReset (tabContext)
{
	jsEnableTab ('reset', tabContext, 'reset-active', 'reset-inactive', function (tab, ui)
	{
		
		var cancel = document.getElementById ('reset-cancel')
		var clear = document.getElementById ('reset-ok')
		
		cancel.onclick = function ()
		{
			//alert('cancel');
			tab.onclick ()
			return false
		}
		clear.onclick = function ()
		{			
			http.open('get', '../ajaxtunnel.php?action=clearSession');
			http.onreadystatechange = resClearSession;
			http.send(null);
				
			tab.onclick ()
			return false
		}
	})
}
function resClearSession() {
		if(http.readyState == 4){
			var response = http.responseText;
			window.location='/';		
		}
}
function jsEnableFromURL (tabContext)
{

}

//send email
function jsEnablePermalink (tabContext)
{
	jsEnableTab ('permalink', tabContext, 'permalink-active', 'permalink-inactive', function (tab, form)
	{
		tab._activeClass = (tab.className == 'permalink-inactive') ? 'permalink-active' : tab.className
		var email_div = document.getElementById ('permalink-send')
		var submit = document.getElementById ('permalink-submit')
		var email = document.getElementById ('permalink-email')
		var email_text = document.getElementById ('email_text')

		form.onsubmit = function ()
		{
			
			email.disabled = 'true'
			submit.disabled = 'true'
			submit.value = localizedText.sending
				
			if(checkEmail(email.value)){
				http.open('get', '../ajaxtunnel.php?action=sendMail&email='+email.value);				
				http.onreadystatechange = resSendMail;
				http.send(null);
			}else{
				
				email_div.id = 'permalink-send-fail'
				email_text.innerHTML = 'The E-mail you entered is invalid.'+'\<b>'+ 'Please correct:'+'\</b>'
				email.disabled = false
				submit.disabled = false
				submit.value = 'Receive a link'
			}
	
			return false
		}
		function resSendMail() {
					if(http.readyState == 4){
						var response = http.responseText
						//alert(response)
						var email_link = document.getElementById ('permalink')
						var email_div = document.getElementById ('permalink-send')
						var email_text = document.getElementById ('email_text')
						
						email_div.id = 'permalink-send-ok'
						email_link.className = 'permalink-send-ok'
						
						if(response == 2){
						/*email_div.innerHTML = 'Permalink was successfully sent to'+ response +'\&nbsp;'+ '<a href="/?page=0&permalink=">'+'(I'+'\''+'ve mispelled it, what should I'+'do?)'+'</a>'*/	
						email_text.innerHTML = 'Error occured while sending the email.Please Try again' 
						 
						}else if(checkEmail(response) ){
							email_div.innerHTML = 'Permalink was successfully sent to '+ response
						}else{
							email_text.innerHTML = 'Error occured while sending the email.Please Try again' 
							email_div.id = 'permalink-send-fail'
							email_div.className = 'permalink-send-fail'
							
							}
							email.disabled = false
							submit.disabled = false
							submit.value = 'Receive a link'
					}
			}
	})
}
function checkEmail(str) {
		var at="@";
		var dot=".";
		var lat=str.indexOf(at);
		var lstr=str.length;
		var ldot=str.indexOf(dot);
		
		if (str.indexOf(at)==-1){
		   return false;
		}
		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false;
		}
		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false;
		}
		if (str.indexOf(at,(lat+1))!=-1){
		    return false;
		}
		if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false;
		}
		if (str.indexOf(dot,(lat+2))==-1){
		    return false;
		}
		if (str.indexOf(" ")!=-1){
		    return false;
		}
 		return true					
}
function jsEnableToolsMenu ()
{
	var tabContext = {}
	
	jsEnableReset (tabContext)
	jsEnablePermalink (tabContext)
	jsEnableFromURL (tabContext)
}

function lerp (a, b, t)
{
	return Math.round (a + (b - a) * t);
}

function emergeSmoothly (e)
{
	if (e._anim)
	{
		e.style.display = ''
		return
	}
	
	var link = e.getElementsByTagName ('a')[0]

	var backColor = [ 0xf4, 0xf6, 0xf8 ]
	var textColor = [ 0x99, 0x99, 0x99 ]
	var linkColor = [ 0x33, 0x66, 0x99 ]
	
	var alphaBlend = function (e, c, t)
	{
		e.style.color = 'rgb(' + lerp (backColor[0], c[0], t) + ',' + lerp (backColor[1], c[1], t) + ',' + lerp (backColor[2], c[2], t) + ')'
	}
	
	var updateColor = function (t)
	{
		alphaBlend (e, textColor, t)
		
		if (link)
			alphaBlend (link, linkColor, t)
	}
	
	updateColor (0)
	
	e.style.display = ''
	
	var i = 0
	var n = 20
	e._anim = window.setInterval (function ()
	{
		if (i == n)
		{
			e.style.color = ''
			window.clearInterval (e._anim)
			e._anim = undefined
		}
		else
		{
			updateColor (i / n)
		}
		
		i++
	}, n)
}

function setNoteText (src)
{
	var e = document.getElementById ('note')
	
	e.style.display = 'none'
	e.innerHTML = src
	
	emergeSmoothly (e)
}

var waitSlotsLoading = false

function loadSlots (f)
{
	var load = function ()
	{
		waitSlotsLoading = true
		f ()
		waitSlotsLoading = false
	}
	
	if (waitSlotsLoading)
	{
		var retry = window.setInterval (function ()
		{
			if (!waitSlotsLoading && retry)
			{
				window.clearInterval (retry)
				retry = undefined
				load ()
			}
			
		}, 100)
	}
	else
	{
		load ()
	}
}

function enableFlashLoader ()
{
	var acquire = function ()
	{
		if (flashLoader != null)
			return true
			
		var uploaderObject = window.uploaderObject || document.uploaderObject
		var uploaderEmbed = window.uploaderEmbed || document.uploaderEmbed

		if (uploaderObject && uploaderObject.upload)
			flashLoader = uploaderObject
		else if (uploaderEmbed && uploaderEmbed.upload)
			flashLoader = uploaderEmbed
			
		if (flashLoader != null)
		{
			loadSlots (function ()
			{
				getLinksUI ()._updateLinksText ()
				
				document.getElementById ('slots')._foreach (function (slot, i)
				{
					if (slot._state == 'choosefile')
					{
						slot._exitChooseFileState ()
						enterFlashChooseFileState (slot, i)
					}
				})
				
				var noteTextNum = Math.floor(Math.random()*3+1)
				
				setNoteText ((noteTextNum == 1) ?
					localizedText.upcoming :
					((noteTextNum == 2) ? localizedText.delicious : localizedText.upcomingPlugin))
			})
			
			return true
		}
		else
			return false
	}
	
	if (!(acquire ()))
	{
		var n = 0
		var retry = window.setInterval (function ()
		{
			if (acquire () || (n > 30))
			{
				window.clearInterval (retry)
			}
			
			n++
		}, 100)
	}
}

function enterJSMode (disclaimer)
{
	if (flashLoader == null)
	{
		loadSlots (function ()
		{
			if (flashLoader == null)
			{
				setNoteText (disclaimer)
	
				document.getElementById ('slots')._foreach (function (slot, i)
				{
					if (slot._setChooseFileReady)
						slot._setChooseFileReady ()
				})
			}
		})
	}
}

function enterNoFlashMode ()
{
	enterJSMode (localizedText.noflash + ' <a href="/includes/faq.php"> (' + localizedText.why + ')</a>')
}

function testCookiesEnabled ()
{
	document.cookie = "testcookie=1; path=/";
	
	if (document.cookie.indexOf('testcookie') != -1)
	{
		document.cookie = "testcookie=1; expires=Tue, 8 May 1945 00:00:00 UTC; path=/";
		return true;
	}
	
	return false;
}

function testLocalContext ()
{
	try
	{
		if (parent && parent.location)
		{
			return (parent.location.href != undefined)
		}
		else
			return true
	}
	catch (e)
	{
		return false
	}
}

handle (window, 'load', function ()
{
	//document.domain = cfgSrvDomain
	
	if (navigator.appVersion.indexOf ('MSIE 8') >= 0)
		return
	
	if (!(testLocalContext ()))
	{
		removeClass (document.getElementById ('iframe-warn'), 'hidden')
		return
	}
	
	cookiesEnabled = testCookiesEnabled ()
		
	jsEnableToolsMenu ()
	
	handle (document.body, 'mousemove', function (event)
	{
		var linksUI = getLinksUI ()
	
	})
	
	
	
	runHttpScheduler ()
	
	jsEnableSlots ()

	if (!(DetectFlashVer (10, 0, 0)) && DetectFlashVer (9, 0, 0))
	{
		var flashDiv = mkChild (document.getElementById ('flash-container'), 'div',
			function (e)
			{
				e.style.position = 'absolute'
				e.style.left = '-10000px'
			})
			
	
		
		window.setTimeout (enterNoFlashMode, 2000)
	}
	else
	{
		enterNoFlashMode ()
	}
})


