function xmlhttpPost(strURL, params) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            updatepage(self.xmlHttpReq.responseText);
        }
    }
    self.xmlHttpReq.send(params);
}

var previousPrtfId = 0;

function updateCollectionData(id) {
	var elem = document.getElementById('prtf_id_' + id);
	if (elem) {
		elem.className = '';
	}
	
	if (previousPrtfId != id) {
		var elemPrev = document.getElementById('prtf_id_' + previousPrtfId);
		if (elemPrev) {
			elemPrev.className = 'rec_fade';
		}
		previousPrtfId = id;
	}
	
	var headDiv = document.getElementById('portfolio_head_div');
	if (headDiv) {
		headDiv.style.display = 'none';
	}
	
	var extendDiv = document.getElementById("content_holder_extend");
	if (extendDiv) {
		extendDiv.innerHTML = '<img src="/images/PROGRESS.gif" id="progress">'
		xmlhttpPost('/pageParts/GetCollectionInfo?id='+id, '');
	}
	return false;
}

function updatepage(str){
    document.getElementById("content_holder_extend").innerHTML = str;
	gSetup();
	footerAligner();
}

					function buildMainRoot(menu) {
							var allLink = document.getElementById('portf_menu_all_ac');
							if (allLink) {
								allLink.className = (menu == 'all') ? 'selected_root' : '';
							}
							var graphLink = document.getElementById('portf_menu_graph_ac');
							if (graphLink) {
								graphLink.className = (menu == 'graph') ? 'selected_root' : '';
							}
							var prodLink = document.getElementById('portf_menu_prod_ac');
							if (prodLink) {
								prodLink.className = (menu == 'prod') ? 'selected_root' : '';
							}
					}

					buildMainRoot('all');
					
					function buildMainMenu(isProduct, isArchive, needClear) {
							var activeLink = document.getElementById('portf_active_link');
							if (activeLink) {
								activeLink.className = (!isProduct && !isArchive && !needClear) ? 'selected' : '';
							}
							var archiveLink = document.getElementById('portf_archive_link');
							if (archiveLink) {
								archiveLink.className = (!isProduct && isArchive && !needClear) ? 'selected' : '';
							}
							var activeLink = document.getElementById('portf_active_prod_link');
							if (activeLink) {
								activeLink.className = (isProduct && !isArchive && !needClear) ? 'selected' : '';
							}
							var archiveLink = document.getElementById('portf_archive_prod_link');
							if (archiveLink) {
								archiveLink.className = (isProduct && isArchive && !needClear) ? 'selected' : '';
							}
					}
			
					function buildMenu(isProduct, isArchive, collection) {
						if (isProduct) {
							var activeMenu = document.getElementById('portf_active_prod_list');
							var activeMenuArchive = document.getElementById('portf_active_prod_arch_list');
						} else {
							var activeMenu = document.getElementById('portf_active_list');
							var activeMenuArchive = document.getElementById('portf_active_arch_list');
						}
						
						if (activeMenu) {
							while ( activeMenu.childNodes.length >= 1 )
							{
							    activeMenu.removeChild( activeMenu.firstChild );       
							}
							
							if (isProduct) {
								var currCollection = collectionsDataActive.Products;
								var currCollectionArchive = collectionsDataArchive.Products;
							} else {
								var currCollection = collectionsDataActive.Graphics;
								var currCollectionArchive = collectionsDataArchive.Products;
							}
							
							for(var item in currCollection) {
								var liElem = document.createElement('li');
								var divElem = document.createElement('div');
								
								if (!isArchive && (item == collection)) {
									divElem.className = 'selected';
								}
								
								var linkElem = document.createElement('a');
								linkElem.innerHTML = subCategoryCollections[item];
								if (isProduct) {
									linkElem.href = '/' + item + '#prod_active';
								} else {
									linkElem.href = '/' + item + '#graph_active';
								}
								
								linkElem.onclick = changePortfolio;
								divElem.appendChild(linkElem);
								liElem.appendChild(divElem);
								activeMenu.appendChild(liElem);
							}
						}
						
						if (activeMenuArchive) {
							while ( activeMenuArchive.childNodes.length >= 1 )
							{
							    activeMenuArchive.removeChild( activeMenuArchive.firstChild );       
							}
							
							if (isProduct) {
								var currCollection = collectionsDataActive.Products;
								var currCollectionArchive = collectionsDataArchive.Products;
							} else {
								var currCollection = collectionsDataActive.Graphics;
								var currCollectionArchive = collectionsDataArchive.Graphics;
							}
							
							for(var item in currCollectionArchive) {
								var liElem = document.createElement('li');
								var divElem = document.createElement('div');
								
								if (isArchive && (item == collection)) {
									divElem.className = 'selected';
								}
								
								var linkElem = document.createElement('a');
								linkElem.innerHTML = subCategoryCollections[item];
								if (isProduct) {
									linkElem.href = '/' + item + '#prod_archive';
								} else {
									linkElem.href = '/' + item + '#graph_archive';
								}
								
								linkElem.onclick = changePortfolio;
								divElem.appendChild(linkElem);
								liElem.appendChild(divElem);
								activeMenuArchive.appendChild(liElem);
							}
						}
					}
					
					buildMenu();
					buildMenu(true);
					
					function changePortfolio(e) {
						if (!e) {
							e = window.event;
						}
						
						clickedElem = e.target || e.srcElement;
						var collectionName = clickedElem.href.replace(/\#prod_active/g, '').replace(/\#prod_archive/g, '').replace(/\#graph_active/g, '').replace(/\#graph_archive/g, '');
						
						collectionName = collectionName.substr(collectionName.lastIndexOf('/') + 1);
						
						var isProduct = false;
						var isArchive = false;
						if ((clickedElem+'').indexOf( '#prod_active', 0 ) > -1) {
							isProduct = true;
							isArchive = false;
						}
						if ((clickedElem+'').indexOf( '#prod_archive', 0 ) > -1) {
							isProduct = true;
							isArchive = true;
						}
						if ((clickedElem+'').indexOf( '#graph_active', 0 ) > -1) {
							isProduct = false;
							isArchive = false;
						}
						if ((clickedElem+'').indexOf( '#graph_archive', 0 ) > -1) {
							isProduct = false;
							isArchive = true;
						}
						
						if (isProduct) {
							buildMenu(false);
							buildMenu(true, isArchive, collectionName);
						} else {
							buildMenu(false, isArchive, collectionName);
							buildMenu(true);
						}
						
						buildCollections(collectionName, isProduct, isArchive);
						
						hideComplete();
						hideCompleteProd();
						
						return false;
					}
					
					function buildBC(isProduct, isArchive, collection) {
						var bch = document.getElementById('bc_holder');
						if (bch) {
							while ( bch.childNodes.length >= 1 )
							{
							    bch.removeChild( bch.firstChild );
							}
							
							if (collection) {
								var divElem = document.createElement('div');
								divElem.className = 'entry';
								divElem.innerHTML = isProduct ? 'Product design' : 'Graphic design';
								bch.appendChild(divElem);
								var divElem = document.createElement('div');
								divElem.className = 'entry';
								divElem.innerHTML = isArchive ? 'Archive projects' : 'Recent projects';
								bch.appendChild(divElem);
								var divElem = document.createElement('div');
								divElem.className = 'entry';
								divElem.innerHTML = subCategoryCollections[collection];
								bch.appendChild(divElem);
							}
						}
					}
					
					function buildCollections(collectionName, isProduct, isArchive) {
						var collectionToDisplay;
						if (collectionName == 'par_allc') {
							var result = [];
							for (var item in collectionsDataActive.Graphics) {
								result = result.concat(collectionsDataActive.Graphics[item]);
							}
							for (var item in collectionsDataActive.Products) {
								result = result.concat(collectionsDataActive.Products[item]);
							}
							for (var item in collectionsDataArchive.Graphics) {
								result = result.concat(collectionsDataArchive.Graphics[item]);
							}
							for (var item in collectionsDataArchive.Products) {
								result = result.concat(collectionsDataArchive.Products[item]);
							}
							collectionToDisplay = result;
							buildMainRoot('all');
							buildMenu();
							buildBC();
							buildMainMenu(isProduct, isArchive, true);
						} else {
							collectionsData = isArchive ? collectionsDataArchive : collectionsDataActive;
							collectionToDisplay = isProduct ? collectionsData.Products[collectionName] : collectionsData.Graphics[collectionName];						
							if (isProduct) {buildMainRoot('prod');} else {buildMainRoot('graph');}
							buildBC(isProduct, isArchive, collectionName);
							buildMainMenu(isProduct, isArchive);
						}

						if (collectionToDisplay) {
							var resultTable = document.getElementById('portf_slider_cont_table');
							var tbody = jQuery(resultTable).find('tbody');
							jQuery(resultTable).find('tr').css({'display':'none'}); //hide previous tr's
							jQuery(tbody).append('<tr></tr>');
							if (resultTable) {
								var itemsLength = collectionToDisplay.length / 3;
								for (var i = 0; i < itemsLength; i++) {
									var getId = 'prtf_id_'+collectionToDisplay[(i*3) + 2];
									var link = jQuery('#'+getId).find('a').attr("href");
									var collectionTemplate = '<a href="'+link+'"><div class="thumbnail">thumb_to_replace</div><div class="title">title_to_replace</div></a>';
									collectionTemplate = collectionTemplate.replace(/id_to_replace/g, collectionToDisplay[(i*3) + 2]);
									collectionTemplate = collectionTemplate.replace(/title_to_replace/g, collectionToDisplay[i*3]);
									collectionTemplate = collectionTemplate.replace(/thumb_to_replace/g, collectionToDisplay[i*3 + 1]);
									var tdElem = document.createElement('td');
									var divElem = document.createElement('div');
									divElem.id = 'prtf_id_' + collectionToDisplay[(i*3) + 2];
									divElem.innerHTML = collectionTemplate;
									tdElem.appendChild(divElem);
									var index = i+1;
									if ((index == 7) || (index == 13) || (index == 20) || (index == 26)) {
										jQuery(tbody).append('<tr></tr>');
									}
									jQuery(tbody).find('tr:last').append(tdElem);
								}
							}
						}
						return false;
					}
					
					
					function makeNotFade(e) {
						if (!e) {
							e = window.event;
						}
						clickedElem = e.target || e.srcElement;
						neededElem = clickedElem.parentNode.parentNode;
						
						if (!(neededElem.className == 'rec_selected' || neededElem.className == 'rec_fade')) {
							neededElem = neededElem.parentNode;
						}
						
						if (neededElem.className == 'rec_selected') {
							neededElem.className = '';
						}
						if (neededElem.className == 'rec_fade') {
							neededElem.className = 'rec_selected';
						}
					}
					
					function makeFade(e) {
						if (!e) {
							e = window.event;
						}
						
						clickedElem = e.target || e.srcElement;

						neededElem = clickedElem.parentNode.parentNode;
						
						if (neededElem.className != 'rec_selected') {
							neededElem = neededElem.parentNode;
						}
						
						if (neededElem.className == 'rec_selected') {
							neededElem.className = 'rec_fade';
						}
					}
					
					var listTable = document.getElementById('portf_slider_cont_table');
					var tempDivs = listTable.getElementsByTagName('div');
					
					for (var i = 0; i < tempDivs.length; i++) {
						if (tempDivs[i].className == 'rec_fade') {
							tempDivs[i].onmouseover = makeNotFade;
							tempDivs[i].onmouseout = makeFade;
						}
					}