
/*********************************************************************************************************
* getHTTPObject - instantiates an AJAX HTTP object for subsequent use
*********************************************************************************************************/
function getHTTPObject() 
{
  var xmlhttp;
  // use conditional compilation in the code below
  /*@cc_on
  @if (@_jscript_version >= 5)
  try 
  {
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } 
  catch (e) 
  {
	try 
    {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    catch (E) 
    {
        xmlhttp = false;
    }
  }
  @else
	xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') 
  {
    try 
    {
		xmlhttp = new XMLHttpRequest();
    } 
    catch (e) 
    {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

/*********************************************************************************************************
* ProcessPartialResponse - processes the response of an AJAX query - this if for aprtial/details population

*********************************************************************************************************/
function ProcessPartialResponse()
{
	if(oHTTP.readyState == 4)			// once the response is received
	{
		oDynamicElements = oHTTP.responseText.split("***");
		PopulateDetailElements(oDynamicElements[0], oDynamicElements[1], oDynamicElements[2]);
	}
}

/*********************************************************************************************************
* ProcessFullResponse - processes the response of an AJAX query - this if for full/manager population
*********************************************************************************************************/
function ProcessFullResponse()
{
	if(oHTTP.readyState == 4)			// once the response is received
	{
		oDynamicElements = oHTTP.responseText.split("***");
		PopulateManagerElements(oDynamicElements);
	}
}

/*********************************************************************************************************
* QueryItemDetails - issues an AJAX query
*********************************************************************************************************/
function QueryItemDetails(strDirectory, bPartial)
{
	oHTTP = getHTTPObject();	
	var strQuery = "getDynamicContent.php?dir="+strDirectory;			// prepare the query string
	if(bPartial==true)
	{
		oHTTP.onreadystatechange = ProcessPartialResponse;				// if this is partial (tumbnail pages) use details routine
	}
	else
	{
		oHTTP.onreadystatechange = ProcessFullResponse;					// otherwise use full response parser
		strQuery += "&fullrequest=true";
	}
	oHTTP.open("GET", strQuery, true);									// prepare the GET query
	oHTTP.send(null);													// send the query
	if(bPartial==true)													// if we are on thumbnail pages
	{																	// set the active thumbnail
	    if (ActiveThumbnailID) 
		{
		    //alert("unsetting " + ActiveThumbnailID.replace(/\//gi, "_"));
		    UnSetStaticImage(ActiveThumbnailID.replace(/\//gi, "_"), ActiveThumbnailID + "/off.jpg");
		}
		SetStaticImage(strDirectory.replace(/\//gi, "_"), strDirectory + "/on.jpg");
		ActiveThumbnailID = strDirectory;
		//alert(ActiveThumbnailID);
	}
}


/*********************************************************************************************************
* PopulateDetailElements - Populates the elements of the "details" area
*********************************************************************************************************/
function PopulateDetailElements(strDescription, strImageSource, strLargerViewLink)
{
    //alert("hello");
    //alert(strDescription);
    //alert(strImageSource);
	var oDescriptionDiv = document.getElementById("dynamicDescription");
	if(!oDescriptionDiv)
		return;
	oDescriptionDiv.innerHTML = strDescription; //"<h2>kjfldjf</h2> dskjfslkdjf sdfklj sdlkdj haha";//firstChild.nodeValue = "";//strDescription;
	document.getElementById("dynamicImagePreview").setAttribute('src', strImageSource);
	var strPopup = "doPopUp('display_image.php?imgname=" + strLargerViewLink + "', 810, 610);";
	//var strPopup = "alert('Nothing');";
	//document.getElementById("dynamicLargerViewLink").setAttribute('href', "#");
	//document.getElementById("dynamicLargerViewLink").setAttribute('onclick', strPopup);
	//alert(document.getElementById("dynamicLargerViewLink").getAttribute('onclick'));
	document.getElementById("dynamicLargerViewLink").innerHTML = "<a href=\"#\" class=\"blue_link_narrow\" onclick=\"" + strPopup + "\">LARGER VIEW</a>";
}


/*********************************************************************************************************
* PopulateManagerElements - Populates the elements of the manager form
*********************************************************************************************************/
function PopulateManagerElements(oElementsArray)
{
	//alert(oElementsArray[6]);
	ShowLayer('company_new', 0);
	ShowLayer('company_existing', 1);
	ShowLayer('remove_item_div', 1);
	document.getElementById("item_name").value = oElementsArray[0];
	document.getElementById("item_name").disabled = true;
	document.getElementById("ExistingCompaniesList").value = oElementsArray[1];
	document.getElementById("company_name").disabled = true;
	document.getElementById("category_list").value = oElementsArray[2];
	toggle_category_elements();
	document.getElementById("display_index").value = oElementsArray[3];
	document.getElementById("more_link").value = oElementsArray[4];
	set_editor_text(oElementsArray[5]);
	document.getElementById("old_co_option").checked=true;
	document.getElementById("new_co_option").disabled=true;
	document.getElementById("old_co_option").disabled=true;
	document.getElementById("ExistingCompaniesList").disabled=true;
	document.getElementById("action_type").value = "edit";
}

function EnableNameandCompany()			// onReset
{
	document.getElementById("item_name").disabled = false;
	document.getElementById("company_name").disabled = false;
	ShowLayer('company_existing', 0);
	ShowLayer('company_new', 1);
	//document.getElementById("new_co_option").checked=true;
	document.getElementById("new_co_option").disabled=false;
	document.getElementById("old_co_option").disabled=false;
	document.getElementById("ExistingCompaniesList").disabled=true;
	ShowLayer('remove_item_div', 0);
	set_editor_text("");
	document.getElementById("action_type").value = "add";
}

function Add_Item_Click()
{
	//alert(document.getElementById("Form1"));
	document.getElementById("Form1").reset();
	EnableNameandCompany();
	document.getElementById("item_name").focus();
}

function Remove_Item_Click()
{
	if(confirm("Are you sure you want to delete selected item?"))
	{
		document.getElementById("action_type").value = "delete";
		document.getElementById("Form1").submit();
	}
}

function ValidateManagerForm()
{
	strAction		= document.getElementById("action_type").value;
	if(strAction!="add")
	{
		//alert("editing is ok! " + strAction);
		return true;
	}
	strItemName		= document.getElementById("item_name").value;
	strCompanyName	= document.getElementById("company_name").value;
	bNewCompany		= document.getElementById("new_co_option").checked;
	if(!strItemName)
	{
		alert("Item Name is a required Field!");
		document.getElementById("item_name").focus();
		return false;
	}
	if(bNewCompany)
	{
		if(!strCompanyName)
		{
			alert("Company Name is a required Field!");
			document.getElementById("company_name").focus();
			return false;
		}
		// check for company duplicate
		oCompanyNames = document.getElementById("ExistingCompaniesList").options;
		
		for(var i=0; i<	oCompanyNames.length; i++)
		{			
			if(oCompanyNames[i].value==strCompanyName)
			{
				alert("Specified Company Already Exists! Either select from existing list or type in new name!");
				document.getElementById("company_name").focus();
				return false;
			}
		}
	}
	else
		strCompanyName = document.getElementById("ExistingCompaniesList").value;
	
	strDirectoryName = generate_item_directory_name(strItemName, strCompanyName);
	// generate directory name using company/name and check if it already exists
	if(!bNewCompany)																// for existing companies verify that name is unique
	{
		oItemNames		= document.getElementById("ExistingItems").options;
		iItemCount		= oItemNames.length;
		for(var i=0; i<	iItemCount; i++)
		{
			//alert ("Comparing..."+oItemNames[i].value+" to " + strDirectoryName);
			if(oItemNames[i].value==strDirectoryName)
			{
				alert("Specified Item Name Already Exists for this Company! Names must be Unique!");
				return false;
			}
		}
	}
	document.getElementById("directory_name").value = strDirectoryName;
	//alert("OK!");
	return true;
}

function generate_item_directory_name(strItemName, strCompanyName)
{
	var strDirectoryName = new String("dynamic_items/"+strCompanyName+"/"+strItemName);
	strDirectoryName = strDirectoryName.replace(/ /g, "_");
	strDirectoryName = strDirectoryName.toLowerCase();
	//alert(strDirectoryName);		
	return strDirectoryName;
}

function Company_Control(bNew)
{
	if(bNew==1)
	{
		ShowLayer('company_existing', 0);
		ShowLayer('company_new', 1);
		document.getElementById("ExistingCompaniesList").disabled = true;
		document.getElementById("company_name").disabled = false;
	}
	else
	{
		ShowLayer('company_new', 0);
		ShowLayer('company_existing', 1);
		document.getElementById("ExistingCompaniesList").disabled = false;
		document.getElementById("company_name").disabled = true;
	}
}

var ActiveThumbnailID = 0;								// by default, no thumbnail id is set
//var oHTTP = getHTTPObject();								// instantiate the HTTP object
